zms / validate
数据验证器
v1.1.2
2025-10-01 06:40 UTC
Requires
- php: >=7.0
- ext-mbstring: *
- zms/exception: *
- zms/unit: *
README
安装
composer require zms/validate
<?php
declare(strict_types=1);
use Zms\Validate\Type;
内置规则大全
| 规则 | 常量 | 描述 |
|---|---|---|
| required | Type::REQUIRED | 必填 |
| required-choose | Type::REQUIRED_CHOOSE | 必选 |
| required-upload | Type::REQUIRED_UPLOAD | 必传 |
| safe | Type::SAFE | 安全接收 |
| default | Type::DEFAULT | 默认值 |
| string | Type::STRING | 字符串 |
| in | Type::IN | 包含 |
| exclude-in | Type::EXCLUDE_IN | 禁选指定项目 |
| multi-selector | Type::MULTI_SELECTOR | 多选验证器 |
| identity-number | Type::IDENTITY_NUMBER | 身份证号 |
| url | Type::URL | 网址 |
| point | Type::POINT | 位置坐标 |
| Type::EMAIL | 邮箱 | |
| ip | Type::IP | IP地址 |
| phone | Type::PHONE | 手机号 |
| mobile | Type::MOBILE | 手机号 |
| list | Type::LIST | 列表 |
| array | Type::ARRAY | 数组 |
| match | Type::MATCH | 正则表达式 |
| number | Type::NUMBER | 数字 |
| int | Type::INT | 整数 |
| money | Type::MONEY | 金额 |
| Type::QQ | QQ号 | |
| datetime | Type::DATETIME | 日期时间 默认Y-m-d H:i:s |
| date | Type::DATE | 日期 默认Y-m-d |
| date-format | Type::DATE_FORMAT | 时间字符串验证,正确就行,不验证格式 |
| list-intersect | Type::LIST_INTERSECT | 列表交集 |
| json | Type::JSON | json字符串 |
| compare | Type::COMPARE | 一致性对比 |
| accepted | Type::ACCEPTED | 通过、同意,用于确认协议勾选了同意等 |
| zipcode | Type::ZIPCODE | 邮编 |
| violate | Type::VIOLATE | 非法词汇检测 |
| domain | Type::DOMAIN | 域名检测 |
验证示例(class验证)
declare(strict_types=1);
use Zms\Validate\ValidateAbstract;
use Zms\Validate\Type;
class ValidateData extends ValidateAbstract{
/**
* 验证规则
*/
public function rules(): array
{
return [
[['name','url'],Type::REQUIRED],
['name', Type::STRING],
['url', Type::URL],
];
}
/**
* 字段描述
*/
public function labels(): array
{
return [
'name' => '名称',
'url'=>'个人主页'
];
}
}
//验证器实例
$validate = new ValidateData();
验证示例(逻辑验证)
<?php
declare(strict_types=1);
use Zms\Validate\Validate
$validate = new Validate();
$validate->setRules([]);
$validate->setLabels([]);
$validate->setData([]);
验证
<?php
declare(strict_types=1);
$validate->validate();
if ($validate->isFail()) {//验证失败,获取错误信息
print_r($validate->getErrorList());
} else {//验证成功,获取验证器数据
print_r($validate->getSafeData());
}
验证器实例方法
| 方法 | 描述 |
|---|---|
| validate | 执行验证 |
| verifyMapping | 验证器映射 |
| setData | 设置验证数据 |
| getData | 获取要验证的数据 |
| setLabels | 设置字段描述 |
| setExclude | 排除验证的字段 |
| setRules | 设置验证规则 |
| setEmptySkip | 不存在的字段是否跳过 |
| setNoSkipping | 设置空值是否跳过 |
| setFields | 设置要验证的字段 |
| setScene | 验证场景 |
| where | 验证条件 |
| isFail | 获取验证状态 |
| getErrors | 获取错误信息 |
| getErrorList | 获取错误信息列表 |
| firstError | 获取第一条错误信息 |
| finalError | 获取最后一条错误信息 |
| addError | 添加一条错误信息 |
| hasError | 判断某字段是否有错误信息 |
| addErrors | 添加错误信息 |
| setSafe | 设置验证安全数据 |
| getSafeData | 获取通过验证后的安全数据 |
| getSafe | 获取指定安全验证数据 |
| beforeValidate | 验证前事件 |
| afterValidate | 验证后事件 |