webiik / validator
Validator 验证数据是否符合用户定义的规则。
1.1
2019-08-08 10:13 UTC
Requires
- php: >=7.2
This package is auto-updated.
Last update: 2024-09-08 21:30:33 UTC
README
Validator
Validator 验证数据是否符合用户定义的规则。
安装
composer require webiik/validator
示例
$validator = new \Webiik\Validator\Validator(); // Add input to validate and input validation rules $validator->addInput('meow', function () { return [ new \Webiik\Validator\Rules\StrLenMin(5, 'Err: Input is shorter than 5 chars.'), new \Webiik\Validator\Rules\StrLenMax(10, 'Err: Input is longer than 10 chars.'), ]; }, 'greeting'); // Validate all inputs and eventually get array of all invalid inputs $invalid = $validator->validate(); // Array ( [greeting] => Array ( [0] => Err: Input is shorter than 5 chars. ) )
添加验证输入
addInput
addInput($input, callable $rules, string $name = '', bool $isRequired = false): void
addInput() 添加一个用于验证的输入。
参数
- input 输入值
- rules 可调用函数,返回一个包含验证规则对象的数组
- name 可选的输入名称。此名称用于 validate() 结果中的输入索引。
- isRequired 可选。表示输入是否必需。空可选输入始终被视为有效。
$validator->addInput('meow', function () { return [ new \Webiik\Validator\Rules\StrLenMin(5, 'Err: Input is shorter than 5 chars.'), new \Webiik\Validator\Rules\StrLenMax(10, 'Err: Input is longer than 10 chars.'), ]; }, 'greeting', true);
验证规则
编写自定义验证规则
您可以编写自己的自定义验证规则。您需要做的只是实现 RuleInterface。查看现有的 RuleInterface 实现示例 以获得更好的理解。
可用的验证规则
// Check if input is === $val Equal($val, string $errMsg = '')
// Check if input is >= $min and <= $max IntVal(int $min, int $max, string $errMsg = '')
// Check if input is <= $max IntValMax(int $max, string $errMsg = '')
// Check if input is >= $min IntValMin(int $max, string $errMsg = '')
// Check if input is email address isEmail(string $errMsg = '')
// Check if input is_float() isFloat(string $errMsg = '')
// Check if input is_int() isInt(string $errMsg = '')
// Check if input is_numeric() isNumeric(string $errMsg = '')
// Check if input is_object() isObject(string $errMsg = '')
// Check if input is not empty isPresent(string $errMsg = '')
// Check if input is_string() isString(string $errMsg = '')
// Check if input passes FILTER_VALIDATE_URL isUrl(string $errMsg = '')
// Check if input matches $regex regex(string $regex, string $errMsg = '')
// Check if input length is >= $min and <= $max StrLen(int $min, int $max, string $errMsg = '')
// Check if input length is >= $min StrLenMin(int $min, string $errMsg = '')
// Check if input length is <= $max StrLenMax(int $max, string $errMsg = '')
验证输入
validate
validate($testAllRules = false): array
validate() 验证所有输入,并返回一个按输入索引排序的所有无效输入的数组。
参数
- testAllRules 表示未满足的规则是否停止检查下一个规则
$invalid = $validator->validate();