webiik/validator

Validator 验证数据是否符合用户定义的规则。

1.1 2019-08-08 10:13 UTC

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();

资源