phly / phly-rule-validation
简单的基于规则的验证框架
0.2.0
2023-11-20 22:02 UTC
Requires
- php: ~8.2.0 || ~8.3.0
Requires (Dev)
- laminas/laminas-coding-standard: ~2.5.0
- phpunit/phpunit: ^10.1
- psalm/plugin-phpunit: ^0.18.4
- roave/security-advisories: dev-master
- vimeo/psalm: ^5.7.7
README
此库提供了一个基本的验证框架。
此库的目标
此库的明确目标是
- 提供一种幂等的验证单个项目或数据集的方法。
- 提供一个可扩展的框架来开发验证规则。
- 允许处理可选数据,并使用默认值。
- 允许报告验证错误消息。
- 确保缺失的必填值被报告为验证失败。
- 尽量减少依赖项。
非目标
- 创建一套广泛的验证规则类。
- 提供广泛机制来验证和返回嵌套数据集。
- 提供一种由配置驱动的机制来创建规则集。
- 提供HTML表单输入表示或创建HTML表单输入表示所需的所有元数据。
安装
composer require phly/phly-rule-validation
基本用法
use Phly\RuleValidation\Result\Result; use Phly\RuleValidation\RuleSet\RuleSet; use Phly\RuleValidation\Rule\CallbackRule; $rules = new RuleSet(); $rules->add(new CallbackRule('flag', function (mixed $value, array $data): Result { if (! is_bool($value)) { return Result::forInvalidValue('flag', $value, 'Not a boolean value'); } return Result::forValidValue('flag', $value); }, default: false)); $rules->add(new MyCustomRule()); // and so on $resultSet = $rules->validate($someFormData); if ($resultSet->isValid()) { $values = $resultSet->getValues(); // do something with values } else { $messages = $resultSet->getMessages(); // do something with error messages } // Get a result for a single key: $flagResult = $resultSet->flag; // or $resultSet->getResult('flag') // Get the value from a single result $flag = $flagResult->value(); // Get the validation status from a single result if ($flagResult->isValid()) { // ... } // Get an error message for a single result if (! $flagResult->isValid()) { echo $flagResult->message(); }
文档
请参阅文档树(docs/)。