Inspirado na lenda japonesa do Noppera-bō, que descreve um rosto sem características distintas, surge a biblioteca "facelesslog". Seu propósito é ocultar ou anonimizar informações sensíveis nos registros, alinhando-se às preocupações contemporâneas sobre a privacidade dos usuários. Em um mundo onde a segurança dos dados é essencial, essa biblioteca oferece uma ferramenta útil para proteger informações valiosas em logs.
Para instalar a biblioteca em seu projeto, utilize o gerenciador de pacotes Composer executando o seguinte comando no terminal:
composer require ananiaslitz/facelesslog
- Flexibilidade: Fácil de integrar com qualquer aplicação PHP.
- Configuração Customizável: Suporta configuração personalizada para ativar/desativar detectores e anonimizadores específicos.
- Singleton/Factory Pattern: Implementação eficiente para garantir a gestão otimizada de recursos.
- Mapeamento Detector-Anonimizador: Eficiência aprimorada com anonimizadores mapeados para detectores específicos.
- Suporte a Testes Unitários: Compatível com PHPUnit para testes confiáveis e robustos.
- Logging de Erros e Exceções: Registra erros e exceções para manutenção e monitoramento fáceis.
- Documentação e Exemplos: Documentação detalhada e exemplos práticos para facilitar o uso.
- Compatibilidade com Frameworks: Integrações disponíveis para frameworks populares como Laravel e Symfony.
Aqui está um exemplo de como você pode configurar e usar o facelesslog:
// Exemplo de uso do FacelessLogger
$logger = FacelessLogger::getInstance();
// Adicionar detectores e anonimizadores conforme necessário
$logger->addDetector(new EmailDetector(), new EmailAnonymizer());
// ...
// Processar uma mensagem
$message = "User email is [email protected]";
$anonymizedMessage = $logger->processMessage($message);
echo $anonymizedMessage; // Saída será uma versão anonimizada da mensagem
A biblioteca facelesslog foi projetada com flexibilidade em mente, permitindo que os usuários ampliem sua funcionalidade de acordo com suas necessidades específicas. Para criar seus próprios Detectores e Anonimizadores, basta implementar as interfaces DetectorInterface e AnonymizerInterface.
A DetectorInterface é uma interface simples que requer a implementação do método detect, que retorna um booleano. Este método é responsável por verificar se uma mensagem contém um certo tipo de informação sensível que você deseja detectar.
class CustomDetector implements DetectorInterface
{
public function detect(string $message): bool
{
// Lógica para detectar uma informação específica na mensagem
}
}
A AnonymizerInterface também é uma interface direta que exige a implementação do método anonymize. Este método deve retornar a mensagem com as informações sensíveis anonimizadas ou ocultadas.
class CustomAnonymizer implements AnonymizerInterface
{
public function anonymize(string $message): string
{
// Lógica para anonimizar informações sensíveis na mensagem
}
}
Sua contribuição é bem-vinda! Se você deseja melhorar a facelesslog, sinta-se à vontade para fazer um fork do repositório e enviar suas pull requests. Para bugs, questões e discussões, por favor, use a seção de issues do GitHub.
Distribuído sob a licença MIT. Veja LICENSE para mais informações.