rnr1721 / le7-validator
简单但出色的PHP 8验证器
1.0.3
2023-05-06 16:59 UTC
Requires
- php: >=8.1
- ext-gettext: *
Requires (Dev)
- phpunit/phpunit: ^10.0
- vimeo/psalm: ^5.7
README
这是一个简单方便的PHP验证器。它可以用来验证表单输入、API请求以及任何需要处理前验证的数据。
要求
- PHP 8.1
安装
composer require rnr1721/le7-validator
测试
composer test
使用
首先你需要创建验证器的实例
use Core\Utils\ValidatorFactory; $validatorFactory = new ValidatorFactory(); $validator = $validatorFactory->getValidator();
然后你需要为每个字段定义验证规则
setFullRule方法可以接受三个参数
- 字段 - 要验证的字段(键)。
- 值 - 要验证的数据
- 规则 - 验证规则
- 标签 - 字段的人类化名称。用于获取错误
$validator->setFullRule('login', 'john', 'required|minlength:3|maxlength:5', 'Login'); $validator->setFullRule('email', 'admin@example.com', 'required|email', 'User email'); $validator->setFullRule('age', 35, 'min:22|max:55', 'User age');
最后,你可以进行检查
if ($validator->validate()) { // Validation success } else { // Validation not success $errors = $validator->getMessages(); }
当前规则
规则 - 以"|"分隔的字符串规则。例如
minlength:3|maxlength:10|numeric
- required: 字段必须填写
- min:{n}: 字段值必须至少为{n}
- max:{n}: 字段值不能超过{n}
- minlength:{n}: 字符串字段值的长度必须至少为{n}
- maxlength:{n}: 字符串字段值的长度不能超过{n}
- email: 字段值必须是一个有效的电子邮件地址
- notempty: 字段值不能为空或只包含空格
- numeric: 验证是否只包含数值数据
- email_dns: 验证电子邮件地址的格式,并检查电子邮件地址的域名部分是否有有效的DNS记录
- url: 验证URL
- url_active: 如果URL地址有效且存在
- date: 验证值是否为日期
- date_format:{n}: 验证日期格式:例如:date_format:Y-m-d
- date_before:{n}: 验证日期在某日期之前。例如:date_before:2022-05-15
- date_after:{n}: 验证日期在某日期之后。例如:date_after:2022-05-15
- boolean: 验证布尔值