polycademy / validation
PHP 的简单扩展验证库。
v1.0.9
2013-11-08 19:37 UTC
Requires
- php: >=5.3.0
README
这是一个简单、可扩展的 PHP 验证库,支持过滤和验证任何输入数组。它提供了一个比上游分支更简洁的接口。
0.0 目录
- 简介
- 示例
- 规则参考
- 安装
1.0 简介
该库提供了一种简单的方式,可以对一组规则验证输入数组。输入可以来自 $_POST 或其他数据源。
每个字段都可以有自己的标签、预过滤器以及应用于它的规则。规则扩展了一个非常简单的接口,使得添加自定义规则变得非常容易。Validator 对象本身可以针对不同的数据集执行多次,这使得它在处理动态数据时非常有用。
您可以通过简单地通过扩展 "\Polycademy\Validation\Rule" 添加更多规则来轻松扩展此验证器。请确保查看源代码!
2.0 示例
您可以单独添加规则和过滤器!
use Polycademy\Validation\Validator; use Polycademy\Validation\Rule; $validator = new Validator(); $validator ->set_label('name', 'first name') ->set_label('email', 'email address') ->set_label('password2', 'password confirmation') ->add_filter('name', 'trim') ->add_filter('email', 'trim') ->add_filter('email', 'strtolower') ->add_rule('name', new Rule\MinLength(5)) ->add_rule('name', new Rule\MaxLength(10)) ->add_rule('email', new Rule\MinLength(5)) ->add_rule('email', new Rule\Email()) ->add_rule('password', new Rule\Matches('password2')) ; if($validator->is_valid($_POST)) { print_r($validator->get_data()); } else { print_r($validator->get_errors()); }
或者,您可以使用 setup_rules 并流畅地添加所有规则。
use Polycademy\Validation\Validator; use Polycademy\Validation\Rule; $validator = new Validator(); $validator->setup_rules(array( 'name' => array( 'set_label:Course Name', 'NotEmpty', 'AlphaNumericSpace', 'MinLength:5', 'MaxLength:50', ), 'starting_date' => array( 'set_label:Starting Date', 'Regex:/^(19|20)\d\d\-(0[1-9]|1[012])\-(0[1-9]|[12][0-9]|3[01])$/', ), 'days_duration' => array( 'set_label:Course Duration', 'NotEmpty', 'Number', 'NumRange:1,200', ), 'times' => array( 'set_label:Course Times', 'NotEmpty', 'MinLength:1', 'MaxLength:100', 'AlphaNumericSpace', ), 'number_of_applications' => array( 'set_label:Number of Applicants', 'Number', 'NumRange:0,100', ), 'number_of_students' => array( 'set_label:Number of Students', 'Number', 'NumRange:0,100', ), )); if(!$validator->is_valid($data)){ //returns array of key for data and value $errors = $validator->get_errors(); }
更详细的示例可以在 ./examples 中找到。
3.0 规则参考
- NotEmpty 使该字段成为必填项
- Equal 输入必须匹配提供的字符串
- NotEqual 输入必须不匹配提供的字符串
- Matches 输入必须匹配另一个字段的值
- InArray 输入必须在值的数组中
- MinLength 输入长度必须大于或等于值
- MaxLength 输入长度必须小于或等于值
- ExactLength 输入长度必须正好等于值
- Alpha 输入只能包含 a-z 字符
- AlphaSpace 输入只能包含 a-z 字符和空格
- AlphaNumeric 输入可以包含 a-z 和 0-9
- AlphaNumericSpace 输入可以包含 a-z 和 0-9 以及空格
- AlphaSlug 输入可以包含 a-z、0-9、- 和 _
- Regex 输入必须匹配提供的正则表达式
- Email 输入必须为有效的电子邮件格式
- URL 输入必须为有效的 URL 格式
- IP 输入必须为有效的 IPv4 或 v6 地址
- True 输入必须是 true,例如复选框
- Number 输入必须是数字,例如 -99 或 123.45
- NumNatural 输入必须是一个非负整数
- NumMin 输入值必须大于或等于值
- NumMax 输入值必须小于或等于值
- NumRange 输入值必须在最小值和最大值之间
4.0 安装
您可以使用 Composer 进行安装。只需将其添加到您的 composer.json 中即可
"polycademy/validation": "*"