andileong / validation
此包最新版本(0.03)没有可用的许可证信息。
一个纯PHP验证包
0.03
2022-12-31 12:12 UTC
Requires
- php: ^8.0
Requires (Dev)
- phpunit/phpunit: ^9.5
- symfony/var-dumper: ^6.1
README
Validation
包含一些实用的验证规则,支持自定义错误信息、闭包语法规则、传递对象规则,无需框架。
但仅包含一些验证规则,如:
required
required_if
min
max
between
in
alpha_num
boolean
decimal
ends_with
ip
is_array
is_string
json
number
timezone
我对Laravel验证的工作原理很感兴趣,这就是我开发这个包的主要原因。这个包不是用于生产的,只是用于快速练习。
当包完成时,我将它与Laravel的验证组件进行比较,这真正帮助我更好地理解框架验证器的工作原理,并真正提高了我的技能。
阅读代码与编写代码同样重要。
如何使用
$data = [
'name' => 'foo',
];
$validator = new Validator($data);
try{
$validated = $validator->validate([
'name' => 'required|min:3|max:5',
'age' => ['required','between:18,60'],
'foo' => ['required',fn($value) => $value == 'bar'],
'object' => ['required',new Custom('validation')],
'sex' => 'required_if:name',
],[
'name.max' => 'The :key must in :argument long, you had provided :value which is not valid',
'foo.closure' => 'The :key must in bar'
]);
}catch(ValidationException $exception){
//validation fails do whatever
//$errors contains all errors message.
$errors = $exception->errors();
}
$validated is the return array only contains the rules keys