code-corner/validation

验证库是一个强大的PHP工具包,旨在简化表单字段提交时的验证。它提供各种方法,满足不同数据类型和验证标准,确保您的应用程序接收准确和安全的数据。

v1.0.1 2024-07-21 11:45 UTC

This package is auto-updated.

Last update: 2024-09-21 13:05:47 UTC


README

简介

这是一个全面的PHP验证库,提供各种方法来验证不同类型的数据是否符合指定规则。

安装

确保您已安装Composer。您可以使用Composer运行以下命令来安装库:

composer require codecorners/validation

用法

  1. 要求Composer的Autoload文件

    请确保在脚本开头包含Composer的autoload文件

    require_once 'vendor/autoload.php';
  2. 使用验证类

    在您的脚本中使用来自CodeCorner\Validation命名空间的Validation

    use CodeCorner\Validation\Validation;
  3. 执行验证

    定义您的验证规则,并使用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个字符的字符串。
  4. 可用的验证方法

    以下是可用的验证方法和它们的用法

    • 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:字段必须是一个有效的十进制数。
  5. 检索验证错误

    执行验证后,您可以使用getErrors方法检索任何验证错误

    $errors = Validation::getErrors();
    print_r($errors);

    这将输出一个数组,包含验证过程中遇到的验证错误。

  6. 使用数据库级别的验证

    • 在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文件。
  • 为不同字段定义各种验证规则。
  • 将提供的数据与这些规则进行验证。
  • 打印遇到的任何验证错误。