celiovmjr / smartvalidator
验证。清理。保护您的数据。
2.0.5
2024-07-01 13:18 UTC
Requires
- php: >=8.1
- ext-fileinfo: *
- ext-mbstring: *
Requires (Dev)
- phpunit/phpunit: ^10.5
README
SmartValidator 是一个 PHP 类,用于根据可配置的规则验证和过滤输入数据。它支持各种简单和复杂的验证,确保数据在被视为有效之前符合指定的标准。
安装
要使用 SmartValidator,请将 SmartValidator.php
类文件包含到您的 PHP 项目中,并根据需要实例化该类。
require_once 'SmartValidator.php'; // Basic usage example $data = [ 'name' => 'John Doe', 'email' => 'john@example.com', 'age' => 30, ]; $rules = [ 'name' => 'string|required', 'email' => 'email|required', 'age' => 'int|required|min:18', ]; $validator = new Validator\Application\SmartValidator($data, $rules); $validatedData = $validator->getValidated(); // $validatedData will contain the validated data according to the specified rules
功能
构造函数
public function __construct(array|object $data, array $rules)
- $data:包含要验证的数据的关联数组。
- $rules:关联数组,其中键代表要验证的属性名称,值是包含以管道(
|
)分隔的验证规则的字符串。
支持的验证方法
SmartValidator 支持以下类型的验证
-
简单类型:
string
:验证值是否为字符串,并应用清理。bool
:验证并转换值到布尔值。int
:验证并转换值到整数。float
:验证并转换值到浮点数。email
:验证值是否为有效的电子邮件地址。url
:验证值是否为有效的 URL。ip
:验证值是否为有效的 IP 地址。required
:验证值是否不为空或未定义。uuid
:验证值是否为有效的 UUID。
-
复杂验证:
min:x
:验证数值是否大于或等于x
,或者字符串是否至少有x
个字符。max:x
:验证数值是否小于或等于x
,或者字符串是否最多有x
个字符。range:min,max
:验证值是否在指定的范围内。format:format
:验证值是否与指定的日期格式匹配。before:date,format
:验证值是否是早于指定日期的日期。after:date,format
:验证值是否是晚于指定日期的日期。in:val1,val2,...
:验证值是否在允许的值中。size:size
:验证值的尺寸是否等于size
。mime:type1,type2,...
:验证值的 MIME 类型是否在允许的类型中。
异常
当验证失败时,SmartValidator 抛出 InvalidArgumentException
,并提供详细的错误信息,解释验证失败的原因。
返回值
- getValidated():返回一个包含根据指定规则成功验证的数据的关联数组。
public function getValidated(): array
最后说明
SmartValidator 为 PHP 中的数据验证提供了一个灵活的解决方案,提供了一个强大的机制来确保在处理或存储之前输入数据符合定义的要求。它促进了以清晰和结构化的方式实现复杂的验证,提高了 PHP 应用程序中的数据安全和完整性。