andileong/validation

此包最新版本(0.03)没有可用的许可证信息。

一个纯PHP验证包

0.03 2022-12-31 12:12 UTC

This package is auto-updated.

Last update: 2024-09-15 15:48:22 UTC


README

example workflow

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