danieltm / validation-io
validador do framework origins
Installs: 40
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/danieltm/validation-io
Requires
- php: ^8.0
- danieltm/origins: ^2.0
README
Este projeto implementa um sistema de validação para o framework Origins, permitindo que os usuários definam e utilizem regras de validação personalizadas.
Funcionalidades
- Validações baseadas em atributos (
#[Attribute]). - Suporte a validações nativas (
NotEmpty,Email, etc.). - Possibilidade de criação de validações personalizadas.
- Integração com controllers do Origins através de
#[Valid].
Instalação
Este validador depende do framework Origins. Certifique-se de que ele já está instalado antes de continuar.
- Adicione o validador ao seu projeto utilizando o Composer:
composer require danieltm/validation-io
Como Usar
1 Criando um Modelo com Validações
use Daniel\Validator\Valid\Email; use Daniel\Validator\Valid\NotEmpty; final class ModelValidation { #[NotEmpty] private string $nome; #[Email] private string $email; }
2 Criando um Controller com Validação
use Daniel\Origins\Controller; use Daniel\Origins\Get; use Daniel\Origins\Request; use Daniel\Validator\Props\Valid; #[Controller] final class TesteController { #[Get("/")] #[Valid(ModelValidation::class)] function index(Request $request) { // A validação será processada automaticamente } }
Criando uma Validação Personalizada
- Crie um atributo que estenda
AbstractValidatione informe o provedor de validação:use Daniel\Validator\Props\AbstractValidation; use Attribute; #[Attribute(Attribute::TARGET_PROPERTY)] #[ValidationProvider(new MinLengthValidator())] class MinLength extends AbstractValidation { public function __construct(private int $length, string $message = "Valor muito curto.") { parent::__construct($message); } }
- Crie um provedor que implemente
BaseValidator:use Daniel\Validator\BaseValidator; class MinLengthValidator implements BaseValidator { private int $length; public function __construct(int $length) { $this->length = $length; } public function isValid($value): bool { return strlen($value) >= $this->length; } }
- Agora você pode usar
#[MinLength(5)]em suas propriedades!
Licença
Este projeto é distribuído sob a licença MIT.
Para mais informações, acesse Origins Framework.