danieltm/validation-io
最新稳定版本:V1.0.4
Composer 安装命令:
composer require danieltm/validation-io
包简介
validador do framework origins
README 文档
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.
统计信息
- 总下载量: 40
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-01-09