mazed / php-validator-sanitizer
PHP 验证和清理库
Requires
- php: >=5.6
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-24 13:49:00 UTC
README
使用 PHP 库进行表单输入和 API 请求的验证和清理,灵感来自 Laravel,专为 PHP 设计。
概述
PHP Validator Sanitizer 是一个受 Laravel 启发的全面 PHP 包。它简化了 PHP 的数据验证和清理过程,为开发者提供了一个灵活且用户友好的解决方案,以确保用户输入符合特定标准,并防范常见漏洞。
功能
- 数据验证:轻松验证用户输入、表单提交和 API 请求。
- 自定义验证规则:定义自定义验证规则以满足应用程序的具体需求。
- 错误消息:详细的错误消息,帮助用户理解验证失败。
- 数据清理:可选的数据清理函数,用于清理和格式化数据。
示例用法
要在您的 PHP 应用程序中使用 php-validator-sanitizer 包进行数据验证,请按照以下步骤操作
1. 安装包
首先,使用 Composer 安装 PHP Validator Sanitizer 包
composer require mazed/php-validator-sanitizer
2. 初始化验证器
从包中创建 Validator 类的实例
use Mazed\PHPValidator\Validator; $validator = new Validator;
有关可以使用 $validator
的公共方法,请参阅 验证器实例方法 部分。
3. 定义您的数据和验证规则
准备要验证的数据,并定义验证规则。以下是一个示例
$data = [ 'first_name' => 'John', 'last_name' => '', 'email' => 'email@example', 'password' => '##112233', 'confirm_password' => '##112233', ]; $rules = [ 'first_name' => ['required', 'string'], 'last_name' => ['required', 'string'], 'email' => ['required', 'email'], 'password' => ['required', 'min:8'], 'confirm_password' => ['required', 'min:6', 'same:password'], ];
在 可用验证规则 部分中探索所有可用的验证规则及其用法。
4. 自定义错误消息(可选)
如果需要自定义错误消息,可以使用 $customMessages
数组。在此示例中,我们将其留空。
$customMessages = [];
在 自定义错误消息 部分中了解更多关于自定义错误消息的信息。
5. 映射属性名称(可选)
使用 $attributes
数组将字段名称映射到用户友好的标签,这些标签将用于错误消息。
$attributes = [ 'first_name' => 'First Name', 'last_name' => 'Last Name', 'email' => 'Email', ];
6. 执行验证
使用 make
方法执行验证
$validation = $validator->make($data, $rules, $customMessages, $attributes);
7. 处理验证结果
检查验证是否失败,如果是,则打印出验证错误
if ($validation->fails()) { echo "<pre>"; echo print_r($validation->errors(), true); echo "</pre>"; } else { echo "Success!"; }
验证器实例方法
make($data: array, $rules: array[, $customMessages?: array, $attributes?: array])
此方法根据给定的 $rules
对 $data
执行验证。如果传递 $customMessages
和 $attributes
,则将根据这些信息生成错误消息(如果有)。
fails(): boolean
此方法将返回基于验证状态的 true 或 false。如果返回 true,则表示验证器在数据中发现了错误,并且可以通过 errors()
方法获取这些错误。
errors(): array
此方法将返回基于通过 make
方法传递的格式化 $data
数组的错误消息(如果有)。
可用验证规则
PHP Validator 提供了一组全面的验证规则,以满足您的需求。以下是可用规则列表
accepted
检查待验证的字段是否是以下之一:'yes'
、'on'
、'1'
、1
、'true'
、true
。这对于验证协议类型字段非常有用。数组
检查待验证的字段是否为数组。范围:min,max
检查待验证的字段是否在:min
和:max
范围内(包括两端)。- 对于字符串数据,值对应字符数。
- 对于数值数据,值对应给定的整数。
- 对于数组,值对应数组的计数。
日期
检查待验证的字段是否根据strtotime
PHP 函数是有效的日期。数字范围:min,max
检查整数数字的位数是否在:min
和:max
范围内(包括两端)。数字:value
检查整数数字的位数是否正好等于:digits
。电子邮件
检查待验证的字段是否是有效的电子邮件地址。整数
检查待验证的字段是否为整数。IP
检查待验证的字段是否是有效的IP地址(IPv4、IPv6)。IPv4
检查待验证的字段是否是有效的IPv4地址。IPv6
检查待验证的字段是否是有效的IPv6地址。JSON
检查待验证的字段是否是有效的JSON字符串。小写
检查待验证的字段是否全部由小写字母组成。MAC地址
检查待验证的字段是否是有效的MAC地址。最大值:value
检查待验证的字段是否小于或等于:max
。- 对于字符串数据,值对应字符数。
- 对于数值数据,值对应给定的整数。
- 对于数组,值对应数组的计数。
最小值:value
检查待验证的字段是否至少为:min
。- 对于字符串数据,值对应字符数。
- 对于数值数据,值对应给定的整数。
- 对于数组,值对应数组的计数。
可空
将待验证的字段设置为可选(允许为null),但如果指定了其他验证规则且值不为null,则仍需遵守这些规则。数值
检查待验证的字段是否是有效的实数。必需
检查待验证的字段是否存在且不为空。如果一个字段是“空”的,那么它符合以下标准之一- 值是
NULL
或FALSE
。 - 值是一个空字符串。
- 值是空数组或空可计数对象。
- 值是
相同:field
检查待验证的字段是否与指定的:other
属性相等。大小:value
检查待验证的字段是否与:size
完全相同。- 对于字符串数据,值对应字符数。
- 对于数值数据,值对应给定的整数。
- 对于数组,值对应数组的计数。
字符串
检查给定值是否为字符串。大写
检查字符串值是否全部由大写字母组成。URL
检查值是否是有效的URL。
缺少您需要的任何验证规则?请参阅自定义验证规则部分,了解如何在项目中创建和使用自定义验证规则。
自定义验证规则
在您的项目中创建验证规则类
<?php use Mazed\PHPValidator\Rule; class BooleanRule extends Rule { // error message if fails... private $message = "The :attribute must be a boolean"; public function validate($value) { // validation code here... return is_bool($value); } public function message() { return $this->message; } }
将它们作为实例传递到 $rules
数组中
$rules = [ 'agreed' => ['required', new BooleanRule], ];
自定义错误消息
PHP Validator根据验证规则提供默认错误消息。为了增加灵活性,您可以全局更改这些错误消息,甚至可以针对特定字段和验证规则进行更改
$customMessages = [ 'required' => ':attribute is missing', 'string' => ':attribute cannot contain any numerics', 'between' => 'The :attribute must be given between :min & :max', 'size' => 'The account number must consist of :size characters', ];
现在,对于每个验证规则,它将返回您设置的自定义错误消息。注意: :attribute
指的是当前正在验证的字段,作为占位符。我们还有更多这样的占位符;在占位符列表部分中探索它们。
如果您希望有更多的灵活性,并希望为每个验证规则和字段单独自定义错误消息,您也可以实现这一点
$customMessages = [ 'first_name' => [ 'required' => 'First name must be present', 'string' => 'You cannot include anything except letters in the first name', ], 'email' => [ 'email' => 'The provided email is not valid', ], ];
如果您使用了在自定义消息数组中没有提及的任何其他验证规则,PHP Validator Sanitizer 将遵循默认错误消息。
占位符列表
:attribute
它将引用验证的字段名称和通过$attributes
数组更改的自定义标签。:value
它将引用验证字段的值。:min
它将引用between
、digits_between
、min
验证规则的 min 值参数。:max
它将引用between
、digits_between
、max
验证规则的 max 值参数。:digits
它将引用digits
验证规则的价值参数。:other
它将引用same
验证规则的字段参数。:size
它将引用size
验证规则的价值参数。
贡献
我们欢迎社区贡献。如果您发现了一个错误或有功能建议,请打开一个问题或提交一个拉取请求。
许可协议
此软件包是开源的,可在 MIT 许可协议下获得。