Skip to content

DanielTM999/ValidationIO

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Validador para o Framework Origins

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.

  1. 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

  1. Crie um atributo que estenda AbstractValidation e 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);
        }
    }
  2. 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;
        }
    }
  3. 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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages