fastnorth / validator
FastNorth Validator
该软件包的官方仓库似乎已不存在,因此该软件包已被冻结。
0.0.13
2023-11-23 19:28 UTC
Requires
- symfony/property-access: ~2.7|~3.2|~4.0
Requires (Dev)
- phpunit/phpunit: ~4.8.0
This package is not auto-updated.
Last update: 2024-01-20 14:32:06 UTC
README
这是一个简单的数据验证库,用于处理各种数据结构。它是由于对现有库的不满而诞生的,这些库要么非常复杂且难以实现,要么似乎存在设计缺陷。
安装
通过Composer进行安装
composer require fastnorth/validator
使用方法
数据验证是一个两步过程
- 通过定义约束来定义数据应该看起来是什么样子
- 验证数据集是否与约束匹配
第一步是通过创建一个Definition来完成的,第二步是通过将数据和定义通过一个Validator来完成的。
定义
定义通过“字段”为基础进行指定。字段可以是可以通过Symfony的PropertyAccess组件访问的任何内容。
您可以选择扩展Definition,或者在一个其实例上定义约束
<?php use FastNorth\Validator\Definition; $definition = new Definition; $definition // Validate [foo] has a minimum string length of 10 characters ->field('[foo]') ->should(new Constraint\StringLength(['min' => 10])) // [bar] has to exist ->field('[bar]') ->required();
验证
验证使用Validator类。它在构造函数中接受一个Definition实例,并有一个validate()
方法来验证任何数据以匹配定义。此方法返回一个Validation实例。
<?php use FastNorth\Validator\Definition; $validator = new Validator($definition); // $yourData = ...; $validation = $validator->validate($yourData); if ($validation->passes()) { // Data matched definition } else { // Validation messages are returned as an array per field foreach($validation->getMessages() as $field => $messagesPerField) { foreach($messagesPerField as $message) { echo $message; } } }