akawalko/respect-validation-rules
Composer 安装命令:
composer require akawalko/respect-validation-rules
包简介
Custom rules for the most awesome validation engine ever created for PHP.
README 文档
README
What is this
This repository will be a set of additional rules for the brilliant data validation library called Respect\Validation
Install
Require php: >= 8.0
composer require akawalko/respect-validation-rules
Usage
After installing the package in the place where you want to use my rules, you must use the autoloder and import classes from the namespace.
require_once 'vendor/autoload.php'; use Respect\Validation\Exceptions\NestedValidationException; use Respect\Validation\Rules\AllOf; use Respect\Validation\Validator as v; use Respect\Validation\Factory;
To use my rules you need to overwrite the default factory so that it knows in which namespace to look for new rules.
Factory::setDefaultInstance( (new Factory()) ->withRuleNamespace('RespectValidationRules\\Rules') ->withExceptionNamespace('RespectValidationRules\\Exceptions') );
Rules
DynamicAttr
When you have an object that uses dynamic properties with the help of magic methods like __get() and __set() you can't use a rule Attribute. It will not work. The solution is my custom method DynamicAttr.
Let's look at this short example:
$dynamicObject = new ClassWithMagicMethods(); $dynamicObject->firstname = 'John Wesley'; $dynamicObject->lastname = 'Connor'; $dynamicObject->age = 36; $validator = new AllOf( v::dynamicAttr( 'firstname', v::stringType() ->alpha() ->length(2, 10) ), v::dynamicAttr( 'lastname', v::stringType() ->length(null, 190) false // property can be undefined ), v::dynamicAttr( 'age', v::intVal() ->min(18) ) ); try { $validator->assert($dynamicObject); echo "valid\n"; } catch (NestedValidationException $exception) { echo "not valid\n"; print_r($exception->getMessages()); }
The full code of the example can be found here: examples/example_01.php
akawalko/respect-validation-rules 适用场景与选型建议
akawalko/respect-validation-rules 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 7 次下载、GitHub Stars 达 0, 最近一次更新时间为 2023 年 11 月 20 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 akawalko/respect-validation-rules 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 akawalko/respect-validation-rules 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 7
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 13
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-11-20