纳瓦尔艺术免安装绿色中文版
2.82G · 2025-10-24
在日常开发中,参数校验是绕不过的一道坎。我们常常需要确保用户传入的数据符合预期格式,比如必填字段、数据类型、最大长度、邮箱格式等等。虽然许多 PHP 框架都内置了验证器,但在开发轻量服务、非框架项目,或需要在业务中后端进行结构化数据校验时,我总觉得现有方案不够灵活、冗余较多。
于是,我动手写了一个开箱即用、易扩展、轻量级的参数验证器:php-schema-validator
虽然 PHP 社区有很多验证类库(如 Laravel 的 Validator、RespectValidation、Opis JSON Schema 等),但它们往往:
我想要一个东西,既能用类似 JSON Schema 的方式表达规则,又能非常容易地扩展,同时尽量保持核心代码简洁明了。
于是这个项目诞生了。
这个库的核心目标可以总结为三句话:
安装方式很简单:
composer require hejunjie/schema-validator
一个简单示例:
use HejunjieSchemaValidatorValidator;
use HejunjieSchemaValidatorExceptionsValidationException;
$data = [
'name' => '张三',
'age' => 28,
'email' => 'invalid-email',
];
// 自定义扩展,返回 true 则规则通过,否则均视为不通过
Validator::extend('is_zh', function ($field, $value, $params = null) {
if (preg_match('/^[x{4e00}-x{9fa5}]+$/u', $value)) {
return true;
}
});
try {
Validator::validate($data, [
'name' => ['is_zh', 'string', 'minLength:2'],
'age' => ['integer', 'between:18,60'],
'email' => ['required', 'email'],
]);
echo "验证通过 ✅";
} catch (ValidationException $e) {
echo "验证失败 ❌" . PHP_EOL;
print_r($e->getErrors()); // 友好打印错误信息
}
输出类似:
验证失败 ❌
Array
(
[email] => Array
(
[0] => email
)
)
目前内置了这些基础规则(并持续扩展中):
string / integer / boolean / array / object / float / numericmin / max / between / length / min_length / max_length / gt / lt / gte / lteemail / mobile / url / ip / json / alpha / alpha_num / alpha_dashrequired / accepted / declinedstarts_with / ends_with / contains比如我想加一个 is_zh(只允许输入中文)规则:
use HejunjieSchemaValidatorValidator;
// 在调用 Validator::validate 之前
Validator::extend('is_zh', function ($field, $value, $params = null) {
if (preg_match('/^[x{4e00}-x{9fa5}]+$/u', $value)) {
return true;
}
});
然后就可以直接使用:
use HejunjieSchemaValidatorValidator;
use HejunjieSchemaValidatorExceptionsValidationException;
try {
Validator::validate($data, [
'name' => ['is_zh'],
]);
// 验证成功
} catch (ValidationException $e) {
// 验证失败
}
GitHub 仓库地址:
? github.com/zxc7563598/…
欢迎 Star、提 Issue、提 PR!
我还在考虑以下几点:
这是一个“造轮子”项目,但也是一个“实践设计”的项目。如果你也曾因为参数验证的重复劳动而烦恼,不妨来试试这个轻量、可扩展的验证器。
如果这个库对你有帮助,欢迎 Star、提建议或一起共建 ?
2025-10-24
网易《逆水寒》手游与宇树科技达成合作,虚拟世界将成机器人技术试验田
2025-10-24
谷歌间接承认 Tensor G5 芯片存在 GPU 问题,将推送更新优化 Pixel 10 系列手机