lmcmi / validators
一个简单易用的验证器,可在任何项目中使用
3.2.3
2024-08-15 14:45 UTC
Requires
- php: >=8.0
README
简介
Validator包是一个多功能的PHP验证库,它可以轻松地执行强大的数据验证。无论是需要验证简单的字符串还是复杂嵌套结构,此包都提供了一种灵活直观的解决方案。
索引
安装
使用Composer安装Validator包
composer require lmcmi/validators
快速开始
标准验证
对于简单的验证,直接使用Validator
类
<?php require_once __DIR__ . "/vendor/autoload.php"; $validator = new \Validators\Validator; $result = $validator->string()->maxLength(10)->required()->validate('this is a test'); if($result->failed()){ $result->throwOnFirst(); // Throws an exception for the first error message }
使用规则进行验证
对于更复杂的情况,利用嵌套结构的规则
$values = [ 'field_1' => [ "a" => "string", "b" => "should_be_int", "c" => [] ], "field_2" => '{"json": "valid"}' ]; $rules = [ "field_1" => "array|required", "field_1.a" => "string|required|lengthBetween:1,2", "field_1.b" => "int|between:1,2", "field_1.c" => "array", "field_2" => "json", ]; $result = Validator::rules($rules)->validade($values); $result->failedOnField("teste.c"); // Returns false $result->failed(); // Returns true $result->throwOnFirstError(); // Throws an exception with the first error message $result->failedOnRule('string'); // Returns true $result->getErrorsMessages(); // Returns all error messages if they exist
自定义
通过自定义处理器和消息来定制Validator包以满足您的需求。
自定义处理器
创建自定义验证处理器以定制验证过程
namespace My\Namespace; class Required implements \Validators\Contracts\ValidatorHandler { public function handle($item): bool { return isset($item); } }
为所有自定义处理器设置命名空间
$validator->setNamespaceHandler(My\Namespace::class);
自定义消息
定制验证错误消息以增加个性化
namespace My\Message\Namespace; class Message implements \Validators\Contracts\MessagesRegistration { public function register(): array { return [ 'required' => ':field is required!' ]; } }
集成您的自定义消息类
$validator->registerMessages(new \My\Message\Namespace\Message());
贡献
通过在https://github.com/lcmialichi/validators上提交问题或拉取请求来为Validator包的改进做出贡献。
结论
使用Validator包,您在PHP项目中确保数据完整性和可靠性的强大工具。深入研究文档,尝试提供的示例,轻松增强您的验证能力。