Компонент Валидатор

Компонент Валидатор предоставляет инструменты для валидации значений, следуя спецификации валидации JSR-303 Bean.

Установка

Вы можете установить компонент двумя разными способами:

Then, require the vendor/autoload.php file to enable the autoloading mechanism provided by Composer. Otherwise, your application won't be able to find the classes of this Symfony component.

Использование

Поведение компонента Валидатор основывается на двух концептах:

  • Ограничения, которые определяют правила, которые нужно валидировать;
  • Валидаторы, которые являются классами, содержащими саму логику валидации.

Следующий пример показывает, как валидировать, чтобы строка была как минимум 10 символов в длину:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
use Symfony\Component\Validator\Validation;
use Symfony\Component\Validator\Constraints\Length;
use Symfony\Component\Validator\Constraints\NotBlank;

$validator = Validation::createValidator();
$violations = $validator->validate('Bernhard', array(
    new Length(array('min' => 10)),
    new NotBlank(),
));

if (0 !== count($violations)) {
    // есть ошибки, теперь вы можете их отобразить
    foreach ($violations as $violation) {
        echo $violation->getMessage().'<br>';
    }
}

Извлечение экземпляра валидатора

Класс Validator - это главная точка доступа компонента Валидатор. Чтобы создать новый экземпляр этого класса, рекомендуется использовать класс Validation:

1
2
3
use Symfony\Component\Validator\Validation;

$validator = Validation::createValidator();

Этот объект $validator может валидировать простые переменные вроде строк, чисел и массивов, но не может валидировать объекты. Чтобы сделать это, сконфигурируйте класс Validator так, как объясняется в следующих разделах.

Эта документация является переводом официальной документации Symfony и предоставляется по свободной лицензии CC BY-SA 3.0.