rnr1721/le7-validator

简单但出色的PHP 8验证器

1.0.3 2023-05-06 16:59 UTC

This package is auto-updated.

Last update: 2024-09-06 20:55:12 UTC


README

这是一个简单方便的PHP验证器。它可以用来验证表单输入、API请求以及任何需要处理前验证的数据。

要求

  • PHP 8.1

安装

composer require rnr1721/le7-validator

测试

composer test

使用

首先你需要创建验证器的实例

use Core\Utils\ValidatorFactory;

$validatorFactory = new ValidatorFactory();
$validator = $validatorFactory->getValidator();

然后你需要为每个字段定义验证规则

setFullRule方法可以接受三个参数

  • 字段 - 要验证的字段(键)。
  • - 要验证的数据
  • 规则 - 验证规则
  • 标签 - 字段的人类化名称。用于获取错误
$validator->setFullRule('login', 'john', 'required|minlength:3|maxlength:5', 'Login');
$validator->setFullRule('email', 'admin@example.com', 'required|email', 'User email');
$validator->setFullRule('age', 35, 'min:22|max:55', 'User age');

最后,你可以进行检查

if ($validator->validate()) {
    // Validation success
} else {
    // Validation not success
    $errors = $validator->getMessages();
}

当前规则

规则 - 以"|"分隔的字符串规则。例如

minlength:3|maxlength:10|numeric
  • required: 字段必须填写
  • min:{n}: 字段值必须至少为{n}
  • max:{n}: 字段值不能超过{n}
  • minlength:{n}: 字符串字段值的长度必须至少为{n}
  • maxlength:{n}: 字符串字段值的长度不能超过{n}
  • email: 字段值必须是一个有效的电子邮件地址
  • notempty: 字段值不能为空或只包含空格
  • numeric: 验证是否只包含数值数据
  • email_dns: 验证电子邮件地址的格式,并检查电子邮件地址的域名部分是否有有效的DNS记录
  • url: 验证URL
  • url_active: 如果URL地址有效且存在
  • date: 验证值是否为日期
  • date_format:{n}: 验证日期格式:例如:date_format:Y-m-d
  • date_before:{n}: 验证日期在某日期之前。例如:date_before:2022-05-15
  • date_after:{n}: 验证日期在某日期之后。例如:date_after:2022-05-15
  • boolean: 验证布尔值