caridea / validate
一个验证库的小虾米
3.0.0
2018-01-28 20:10 UTC
Requires
- php: >=7.1.0
Requires (Dev)
- phpunit/phpunit: ^6.0.0
This package is not auto-updated.
Last update: 2024-09-14 17:53:37 UTC
README
Caridea 是一个微小的 PHP 应用程序库。这个小虾米是你只需要一些帮助而不需要完整框架时使用的。
这是它的验证库。
它支持 LIVR 规则,但有例外。见下面的合规性 → LIVR 部分。
安装
您可以使用 Composer 安装此库
$ composer require caridea/validate
- 此项目的 master 分支(版本 3.x)需要 PHP 7.1,没有依赖项。
- 此项目的 2.x 版本需要 PHP 7.0,没有依赖项。
- 此项目的 1.x 版本需要 PHP 5.5,没有依赖项。
文档
合规性
此库的发布将符合 语义版本控制。
我们的代码旨在符合 PSR-1、PSR-2 和 PSR-4。如果您发现任何与标准合规性相关的问题,请发送拉取请求!
LIVR
我们完全支持 LIVR 规范定义的 JSON 规则格式。但是,我们不支持 v0.4 样式的 one_of
和 list_of
规则声明。
在大多数情况下,我们支持规范 2.0 版本中定义的所有规则及其返回代码,但有显著的例外。我们没有实现以下规则
trim
– 这是过滤的一部分,而不是验证。to_lc
– 这是过滤的一部分,而不是验证。to_uc
– 这是过滤的一部分,而不是验证。remove
– 这是过滤的一部分,而不是验证。leave_only
– 这是过滤的一部分,而不是验证。default
– 这是过滤的一部分,而不是验证。or
– 这是实验性的。
我们现在支持别名定义!
我们添加了一个额外的验证器:timezone
!如果提供的字符串不是一个有效的时区标识符,它将返回错误 WRONG_TIMEZONE
。
示例
要从规则集创建验证器,您可以将定义传递给构建器,或者可以使用构建器进行过程化操作。
// rules.json { "name": "required", "email": ["required", "email"], "drinks": { "one_of": [["coffee", "tea"]] }, "phone": {"max_length": 10}, }
$registry = new \Caridea\Filter\Registry(); $builder = $registry->builder(); $ruleset = json_decode(file_get_contents('rules.json')); $validator = $builder->build($ruleset);
$registry = new \Caridea\Filter\Registry(); $builder = $registry->builder(); $validator = $builder->field('name', 'required') ->field('email', 'required', 'email') ->field('drinks', ['one_of' => [['coffee', 'tea']]]) ->field('phone', ['max_length' => 10]) ->build();
您可以选择检查验证结果,或者抛出一个包含任何错误的异常。
$input = [ 'foo' => 'bar', 'abc' => '123', ]; $result = $validator->validate($input); // or $validator->assert($input);
您可以在 Registry
中注册自己的自定义规则。
$registry = new \Caridea\Validate\Registry(); $registry->register([ 'credit_card' => ['MyCustomRules', 'getCreditCard'], // a static method ]);