Um componente poderoso e flexível para inspecionar e processar propriedades de objetos baseado em atributos personalizados no Framework KaririCode, fornecendo recursos avançados para validação, sanitização e análise de propriedades em aplicações PHP.
- Características
- Instalação
- Uso
- Integração com Outros Componentes KaririCode
- Desenvolvimento e Testes
- Licença
- Suporte e Comunidade
- Agradecimentos
- Fácil inspeção e processamento de propriedades de objetos baseados em atributos personalizados
- Suporte para validação e sanitização de valores de propriedades
- Manipulação flexível de atributos através de manipuladores de atributos personalizados
- Integração perfeita com outros componentes KaririCode (Serializer, Validator, Normalizer)
- Arquitetura extensível permitindo atributos e manipuladores personalizados
- Construído sobre as interfaces KaririCode\Contract para máxima flexibilidade
O componente PropertyInspector pode ser facilmente instalado via Composer, que é o gerenciador de dependências recomendado para projetos PHP.
Para instalar o componente PropertyInspector em seu projeto, execute o seguinte comando no seu terminal:
composer require kariricode/property-inspector
Este comando adicionará automaticamente o PropertyInspector ao seu projeto e instalará todas as dependências necessárias.
- PHP 8.1 ou superior
- Composer
Se preferir não usar o Composer, você pode baixar o código-fonte diretamente do repositório GitHub e incluí-lo manualmente em seu projeto. No entanto, recomendamos fortemente o uso do Composer para facilitar o gerenciamento de dependências e atualizações.
Após a instalação, você pode começar a usar o PropertyInspector em seu projeto PHP imediatamente. Certifique-se de incluir o autoloader do Composer em seu script:
require_once 'vendor/autoload.php';
- Defina seus atributos personalizados e entidade:
use Attribute;
#[Attribute(Attribute::TARGET_PROPERTY)]
class Validate
{
public function __construct(public readonly array $rules) {}
}
#[Attribute(Attribute::TARGET_PROPERTY)]
class Sanitize
{
public function __construct(public readonly string $method) {}
}
class Usuario
{
public function __construct(
#[Validate(['required', 'string', 'min:3'])]
#[Sanitize('trim')]
public string $nome,
#[Validate(['required', 'email'])]
#[Sanitize('lowercase')]
public string $email,
#[Validate(['required', 'integer', 'min:18'])]
public int $idade
) {}
}
- Crie um manipulador de atributos personalizado:
use KaririCode\PropertyInspector\Contract\PropertyAttributeHandler;
class ManipuladorAtributoPersonalizado implements PropertyAttributeHandler
{
public function handleAttribute(object $object, string $propertyName, object $attribute, mixed $value): ?string
{
if ($attribute instanceof Validate) {
return $this->validar($propertyName, $value, $attribute->rules);
}
if ($attribute instanceof Sanitize) {
return $this->sanitizar($value, $attribute->method);
}
return null;
}
// Implemente os métodos validar e sanitizar...
}
- Use o PropertyInspector:
use KaririCode\PropertyInspector\AttributeAnalyzer;
use KaririCode\PropertyInspector\PropertyInspector;
$analisadorAtributos = new AttributeAnalyzer(Validate::class);
$inspetorPropriedades = new PropertyInspector($analisadorAtributos);
$manipulador = new ManipuladorAtributoPersonalizado();
$usuario = new Usuario('Walmir Silva', 'walmir@exemplo.com', 25);
$resultados = $inspetorPropriedades->inspect($usuario, $manipulador);
Você pode criar regras de validação e sanitização mais complexas e até combinar o PropertyInspector com outros componentes como o ProcessorPipeline para fluxos de processamento mais avançados.
O componente PropertyInspector é projetado para trabalhar perfeitamente com outros componentes KaririCode:
- KaririCode\Serializer: Use o PropertyInspector para validar e sanitizar dados antes da serialização.
- KaririCode\Validator: Integre lógica de validação personalizada com atributos do PropertyInspector.
- KaririCode\Normalizer: Use o PropertyInspector para normalizar propriedades de objetos baseadas em atributos.
Para fins de desenvolvimento e teste, este pacote usa Docker e Docker Compose para garantir consistência em diferentes ambientes. Um Makefile é fornecido para conveniência.
- Docker
- Docker Compose
- Make (opcional, mas recomendado para facilitar a execução de comandos)
-
Clone o repositório:
git clone https://github.com/KaririCode-Framework/kariricode-property-inspector.git cd kariricode-property-inspector
-
Configure o ambiente:
make setup-env
-
Inicie os contêineres Docker:
make up
-
Instale as dependências:
make composer-install
make up
: Inicia todos os serviços em segundo planomake down
: Para e remove todos os contêineresmake build
: Constrói imagens Dockermake shell
: Acessa o shell do contêiner PHPmake test
: Executa os testesmake coverage
: Executa a cobertura de testes com formatação visualmake cs-fix
: Executa o PHP CS Fixer para corrigir o estilo do códigomake quality
: Executa todos os comandos de qualidade (cs-check, test, security-check)
Para uma lista completa de comandos disponíveis, execute:
make help
Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.
- Documentação: https://kariricode.org/docs/property-inspector
- Rastreador de Problemas: GitHub Issues
- Comunidade: Comunidade KaririCode Club
- A equipe do Framework KaririCode e colaboradores.
- Inspirado em padrões de programação baseada em atributos e reflexão em aplicações PHP modernas.
Construído com ❤️ pela equipe KaririCode. Capacitando desenvolvedores para criar aplicações PHP mais robustas e flexíveis.