Компонент Validator

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

Установка

1
$ composer require symfony/validator

Также вы можете клонировать репозиторий https://github.com/symfony/validator.

Note

If you install this component outside of a Symfony application, you must require the vendor/autoload.php file in your code to enable the class autoloading mechanism provided by Composer. Read this article for more details.

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

Эта статья объясняет как использовать функции Validator как независимого компонента в любом приложении PHP. Прочитайте статью Validation для понимания как использовать его в приложениях Symfony.

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

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

Следующий пример показывает, как валидировать, чтобы строка была как минимум 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.