代码拉取完成,页面将自动刷新
yeah, another params validate component for PHP applications.
嗯,又一个PHP应用参数验证组件
"furthestworld/validator": "~1.0"
并更新composer依赖:composer update
require_once __ROOT__ . '/vendor/autoload.php';
use FurthestWorld\Validator\Src\Validator;
//扩展验证规则实例
Validator::extend('extend_test', new TestExtendRules());
Validator::formatParams(
$params,
[
'domain' => ['format_rule' => 'strtoupper', 'default_value' => ''],
'member_id' => ['format_rule' => 'formatExtendMemberId:domain']
]
);
Validator::validateParams(
$params,
[
'domain' => ['check_rule' => 'number#numberGt0|string#string:10,500'],
'member_id' => ['check_rule' => 'extendEq:20#number'],
]
);
if (!Validator::pass()) {
//验证未通过
var_dump(Validator::getErrors());
} else {
//验证通过
}
format_rule 规则: 格式化方法(PHP函数或自定义函数):格式化参数(若为空则默认为当前字段的值)
default_value 参数默认值设置
force_value 强制重置参数
分隔符 |
:或验证
(满足其中的至少一项验证)
分隔符 #
:与验证
(满足其中所有的验证项)
分隔符 :
:方法和参数分隔符
分隔符 ,
:多个参数分隔符
如上面的规则:'number#numberGt0|string#string:10,500'
解析成PHP代码逻辑相当于:
if((number && numberGt0) || (string && string:10,500)){
...
}
为了避免方法名和PHP关键字冲突,对应规则中的方法在解析成方法名时会自动加上前缀
check
比如上面的number
、numberGt0
、string
验证方法对应的方法分别为:checkNumber
、checkNumberGt0
、checkString
format_rule
和 check_rule
除了使用组件自带的格式化和验证方法,也支持自定义方法。
只需要把自定义的规则实例注册到组件的扩展规则中就可以了,如:
Validator::extend('extend_test', new TestExtendRules());
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型