markwilson/symfony2-validator-priority-chain

此包已被放弃,不再维护。没有建议的替代包。

在 Symfony2 验证器组件中对验证器约束进行优先级排序的链

2.2.0 2013-12-11 13:50 UTC

This package is not auto-updated.

Last update: 2021-01-23 09:25:20 UTC


README

注意:目前仅适用于验证器组件 2.2.x

在 Symfony2 验证器组件中对验证器约束进行优先级排序的链。增加了根据约束队列停止进一步验证的能力。例如:验证变量是否为数组,然后验证数组中是否包含键。默认的 Symfony 验证器组件行为是完成每个验证约束。

安装

markwilson/symfony2-validator-priority-chain 添加到 composer.json 的 requires 部分。

用法

PriorityChain 需要一个 constraint 选项,它可以是数组(按优先级顺序排列,优先级最高在前),或者 SplPriorityQueue。队列中的每个项目必须是 Constraint 实例。默认情况下,验证器将遍历每个约束,直到发生错误(这可以通过 stopOnError 选项来更改)。

例如。

use MarkWilson\Validator\Constraints\PriorityChain;
use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Component\Validator\Validation;

$queue = new \SplPriorityQueue();
$queue->insert(new Assert\Type('array'), 2);
$queue->insert(new Assert\NotBlank(), 1);

$constraint = new PriorityChain(array('constraints' => $queue));

$validator = Validation::createValidator();
$validator->validateValue($value, $constraint);