polycademy/validation

PHP 的简单扩展验证库。

v1.0.9 2013-11-08 19:37 UTC

This package is not auto-updated.

Last update: 2024-09-14 15:27:02 UTC


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": "*"