zms / validate
数据验证器
v1.0.8
2025-04-03 07:55 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 | 验证后事件 |