Компонент 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 основывается на двух концептах:
- Ограничения (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
так, как объясняется в следующих
разделах.
Узнать больше¶
- Metadata
- Метаданные
- Loading Resources
- Загрузка источников
- Validation
- How to Create a custom Validation Constraint
- Как создать пользовательское ограничение валидации
- How to Apply only a Subset of all Your Validation Constraints (Validation Groups)
- Как применить только подмножество всех ваших ограничений валидации (группы валидации)
- How to Validate Raw Values (Scalar Values and Arrays)
- Как валидировать необработанные значения (скалярные значения и массивы)
- How to Sequentially Apply Validation Groups
- Как применять группы валидации последовательно
- How to Handle Different Error Levels
- Как справляться с разными уровнями ошибок
- How to Translate Validation Constraint Messages
- Как переводить сообщения ограничений валидации
Эта документация является переводом официальной документации Symfony и предоставляется по свободной лицензии CC BY-SA 3.0.