Компонент Validator
Компонент Validator
Компонент Validator предоставляет инструменты для валидации значений, следуя спецификации валидации JSR-303 Bean.
Установка
1
$ composer require symfony/validator
Также вы можете клонировать репозиторий https://github.com/symfony/validator.
Note
Если вы устанавливаете этот компонент вне приложения Symfony, вам нужно
подключить файл vendor/autoload.php
в вашем коде для включения механизма
автозагрузки классов, предоставляемых Composer. Детальнее читайте в
этой статье.
Использование
See also
Эта статья объясняет как использовать функции Validator как независимого компонента в любом приложении PHP. Прочитайте статью Валидация для понимания как использовать его в приложениях 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
так, как объясняется в следующих
разделах.
Узнать больше
- Метаданные
- Загрузка источников
- Валидация
- Как создать пользовательское ограничение валидации
- Как применить только подмножество всех ваших ограничений валидации (группы валидации)
- Как валидировать необработанные значения (скалярные значения и массивы)
- Как применять группы валидации последовательно
- Как справляться с разными уровнями ошибок
- Как переводить сообщения ограничений валидации