kashiuno / task-validator
该软件包已被放弃,不再维护。未建议替代软件包。
自定义验证器
dev-master
2020-11-20 06:08 UTC
Requires
- php: >=7.4
Requires (Dev)
- phpunit/phpunit: ^9
This package is not auto-updated.
Last update: 2022-02-26 00:35:29 UTC
README
安装和需求
在Packagist上发布的软件包。您可以通过Composer安装它。
命令:composer require kashiuno/task-validator:dev-master
软件包需要php7.4或更高版本。
使用
您可以在扩展AbstractForm类的类上使用验证器。
1. 指定规则
当您扩展AbstractForm类时,您可以重写rules()方法,该方法必须返回包含规则的数组
示例
public function rules(): array
{
return [
[
'name' => new RegExpValidator(
'Specified string is not match the pattern',
['expression' => '/\\d/', 'match' => true]
),
],
['name' => new RequireValidator('Name must be specify')],
[
'name' => new CallableValidator(
'Name not assert to callable', [
'callback' => function ($value) {
return is_string($value);
},
]
),
],
['age' => new RequireValidator('Age must be specify')],
];
}
注意:您的表单类必须包含规则中指定的字段
2. 在客户端使用
实例化表单后,您可以运行load()方法从数组初始化字段
数组的每个元素都必须具有等于字段名称的键,其他数组键应忽略
示例
$form = new Form();
$form->load(['name' => 'John', 'surName' => 'Moore', 'age' => 24]);
然后您运行validate()方法,该方法运行由rules()方法返回的所有验证规则。validate()方法返回true或false
您可以通过运行getErrors()方法来获取验证错误
$form = new Form();
$form->validate();
$form->getErrors();
3. 验证器
所有验证器都可以接受错误消息和配置关联数组
可调用验证器
config: ['callback' => Callable]
回调是必须的
示例
$validator = new CallableValidator('message', ['callback' => fn ($value) => is_string($value)]);
正则表达式验证器
config: ['expression' => string, 'match' => bool]
表达式是必须的
示例
$validator = new RegExpValidator('message', ['expression' => '/\d/', match => false]);
Match参数表示字符串是否与表达式匹配
必需验证器
示例
$validator = new RequireValidator('message');
字符串验证器
config: ['strict' => bool]
示例
$validator = new StringValidator($this->message, ['strict' => true]);
如果指定了strict参数,验证器检查值的严格类型,否则不检查并通过