celiovmjr/smartvalidator

验证。清理。保护您的数据。

2.0.5 2024-07-01 13:18 UTC

This package is auto-updated.

Last update: 2024-10-01 00:11:34 UTC


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 应用程序中的数据安全和完整性。