mazed/php-validator-sanitizer

1.0.0 2023-11-15 18:57 UTC

This package is auto-updated.

Last update: 2024-09-24 13:49:00 UTC


README

使用 PHP 库进行表单输入和 API 请求的验证和清理,灵感来自 Laravel,专为 PHP 设计。

Latest Stable Version Total Downloads License: MIT

概述

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 提供了一组全面的验证规则,以满足您的需求。以下是可用规则列表

  1. accepted
    检查待验证的字段是否是以下之一: 'yes''on''1'1'true'true。这对于验证协议类型字段非常有用。
  2. 数组
    检查待验证的字段是否为数组。
  3. 范围:min,max
    检查待验证的字段是否在 :min:max 范围内(包括两端)。
    • 对于字符串数据,值对应字符数。
    • 对于数值数据,值对应给定的整数。
    • 对于数组,值对应数组的计数。
  4. 日期
    检查待验证的字段是否根据 strtotime PHP 函数是有效的日期。
  5. 数字范围:min,max
    检查整数数字的位数是否在 :min:max 范围内(包括两端)。
  6. 数字:value
    检查整数数字的位数是否正好等于 :digits
  7. 电子邮件
    检查待验证的字段是否是有效的电子邮件地址。
  8. 整数
    检查待验证的字段是否为整数。
  9. IP
    检查待验证的字段是否是有效的IP地址(IPv4、IPv6)。
  10. IPv4
    检查待验证的字段是否是有效的IPv4地址。
  11. IPv6
    检查待验证的字段是否是有效的IPv6地址。
  12. JSON
    检查待验证的字段是否是有效的JSON字符串。
  13. 小写
    检查待验证的字段是否全部由小写字母组成。
  14. MAC地址
    检查待验证的字段是否是有效的MAC地址。
  15. 最大值:value
    检查待验证的字段是否小于或等于 :max
    • 对于字符串数据,值对应字符数。
    • 对于数值数据,值对应给定的整数。
    • 对于数组,值对应数组的计数。
  16. 最小值:value
    检查待验证的字段是否至少为 :min
    • 对于字符串数据,值对应字符数。
    • 对于数值数据,值对应给定的整数。
    • 对于数组,值对应数组的计数。
  17. 可空
    将待验证的字段设置为可选(允许为null),但如果指定了其他验证规则且值不为null,则仍需遵守这些规则。
  18. 数值
    检查待验证的字段是否是有效的实数。
  19. 必需
    检查待验证的字段是否存在且不为空。如果一个字段是“空”的,那么它符合以下标准之一
    • 值是 NULLFALSE
    • 值是一个空字符串。
    • 值是空数组或空可计数对象。
  20. 相同:field
    检查待验证的字段是否与指定的 :other 属性相等。
  21. 大小:value
    检查待验证的字段是否与 :size 完全相同。
    • 对于字符串数据,值对应字符数。
    • 对于数值数据,值对应给定的整数。
    • 对于数组,值对应数组的计数。
  22. 字符串
    检查给定值是否为字符串。
  23. 大写
    检查字符串值是否全部由大写字母组成。
  24. 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 将遵循默认错误消息。

占位符列表

  1. :attribute
    它将引用验证的字段名称和通过 $attributes 数组更改的自定义标签。
  2. :value
    它将引用验证字段的值。
  3. :min
    它将引用 betweendigits_betweenmin 验证规则的 min 值参数。
  4. :max
    它将引用 betweendigits_betweenmax 验证规则的 max 值参数。
  5. :digits
    它将引用 digits 验证规则的价值参数。
  6. :other
    它将引用 same 验证规则的字段参数。
  7. :size
    它将引用 size 验证规则的价值参数。

贡献

我们欢迎社区贡献。如果您发现了一个错误或有功能建议,请打开一个问题或提交一个拉取请求。

许可协议

此软件包是开源的,可在 MIT 许可协议下获得。