code-corner / validation
验证库是一个强大的PHP工具包,旨在简化表单字段提交时的验证。它提供各种方法,满足不同数据类型和验证标准,确保您的应用程序接收准确和安全的数据。
v1.0.1
2024-07-21 11:45 UTC
Requires
- php: >=7.4.2
- giggsey/libphonenumber-for-php: ^8.13
- giggsey/locale: ^1.7|^2.0
- symfony/polyfill-mbstring: ^1.17
Requires (Dev)
- phpunit/phpunit: ^8.0
This package is auto-updated.
Last update: 2024-09-21 13:05:47 UTC
README
简介
这是一个全面的PHP验证库,提供各种方法来验证不同类型的数据是否符合指定规则。
安装
确保您已安装Composer。您可以使用Composer运行以下命令来安装库:
composer require codecorners/validation
用法
-
要求Composer的Autoload文件
请确保在脚本开头包含Composer的autoload文件
require_once 'vendor/autoload.php';
-
使用验证类
在您的脚本中使用来自
CodeCorner\Validation
命名空间的Validation
类use CodeCorner\Validation\Validation;
-
执行验证
定义您的验证规则,并使用
Validation
类的validate
方法验证数据Validation::validate([ 'name' => 'required|min:3', 'email' => 'required|email', 'age' => 'numeric|min:18', 'url' => 'URL', 'phone' => 'phone', 'amount' => 'decimal', 'role' => 'in_array:admin,moderator,user', 'username' => 'unique:users', 'password' => 'nullable|string|min:6', ], [ 'name' => 'John Doe', 'email' => 'john@example.com', 'age' => 25, 'url' => 'https://example.com', 'phone' => '+1234567890', 'amount' => 123.45, 'role' => 'admin', 'username' => 'johndoe', 'password' => null, ]);
在此示例中
name
是必需的,且长度至少为3个字符。email
必须是一个有效的电子邮件地址。age
必须是数字且至少为18。url
必须是一个有效的URL。phone
必须是一个有效的电话号码。amount
必须是一个十进制数。role
必须是:admin、moderator或user之一。username
必须是唯一的(例如,在数据库中未被占用)。password
是可空的(可选的),如果提供,则必须是一个至少包含6个字符的字符串。
-
可用的验证方法
以下是可用的验证方法和它们的用法
required
:字段必须存在且不能为空。string
:字段必须是字符串。numeric
:字段必须是数字。in_array:val1,val2,...
:字段必须是指定的值之一。array_required
:字段必须是一个非空数组。file
:字段必须是一个文件上传。// 'size.5000000&type.png,jpeg&name.jpeg,png'min:value
:字段必须至少包含value
个字符(对于字符串)或数字值。max:value
:字段必须最多包含value
个字符(对于字符串)或数字值。nullable
:允许字段为空或null。unique:table,column
:检查字段值在指定的数据库表和列中是否唯一。email
:字段必须是一个有效的电子邮件地址。URL
:字段必须是一个有效的URL。regex:pattern
:字段必须匹配指定的正则表达式模式。not_in:val1,val2,...
:字段不得是指定的值之一。in:val1,val2,...
:in_array
的别名。phone
:字段必须是一个有效的电话号码。decimal
:字段必须是一个有效的十进制数。
-
检索验证错误
执行验证后,您可以使用
getErrors
方法检索任何验证错误$errors = Validation::getErrors(); print_r($errors);
这将输出一个数组,包含验证过程中遇到的验证错误。
-
使用数据库级别的验证
- 在config.php文件中添加您的数据库对象。
Validation::dbConfigure(self::$pdo);
然后您将使用数据库级别的验证
<?php require_once 'vendor/autoload.php'; use CodeCorner\Validation\Validation; Validation::validate([ 'name' => 'required|min:3', 'email' => 'required|unique:`tablename`.`fieldname`', 'phone' => 'phone|not_in:`tablename`.`fieldname`,`fieldname`-`value`', 'role' => 'in:`tablename`.`fieldname', 'username' => 'assign:`tablename`.`fieldname`', ], [ 'name' => 'John Doe', 'email' => 'john@example.com', 'phone' => '+1234567890', 'role' => 'admin', 'username' => 'johndoe', ]); $errors = Validation::getErrors(); print_r($errors);
示例
以下是如何使用此库的完整示例
<?php require_once 'vendor/autoload.php'; use CodeCorner\Validation\Validation; Validation::validate([ 'name' => 'required|min:3', 'email' => 'required|email', 'age' => 'numeric|min:18', 'url' => 'URL', 'phone' => 'phone', 'amount' => 'decimal', 'role' => 'in_array:admin,moderator,user', 'username' => 'unique:users', 'password' => 'nullable|string|min:6', ], [ 'name' => 'John Doe', 'email' => 'john@example.com', 'age' => 25, 'url' => 'https://example.com', 'phone' => '+1234567890', 'amount' => 123.45, 'role' => 'admin', 'username' => 'johndoe', 'password' => null, ]); $errors = Validation::getErrors(); print_r($errors);
在此示例中
- 我们包含Composer的autoload文件。
- 为不同字段定义各种验证规则。
- 将提供的数据与这些规则进行验证。
- 打印遇到的任何验证错误。