Команда debug:validator
Команда debug:validator показывает все ограничения
валидации, которые применяются к указанному классу.
Первым параметром передаётся полное имя класса,
для которого нужно вывести правила. Команда полезна
при отладке форм и сущностей, когда нужно понять,
какие правила валидации реально загружены в приложении.
Синтаксис
php bin/console debug:validator [class]
Пример
Давайте создадим сущность Article с несколькими
правилами валидации через атрибуты:
<?php
namespace AppEntity;
use SymfonyComponentValidatorConstraints as Assert;
class Article
{
#[AssertNotBlank]
#[AssertLength(min: 3, max: 255)]
private string $title = '';
#[AssertNotBlank]
private string $text = '';
#[AssertPositive]
private int $views = 0;
#[AssertType('bool')]
private bool $published = false;
#[AssertNotNull]
private DateTimeInterface $createdAt;
}
?>
Теперь выведем правила валидации для этого класса:
php bin/console debug:validator 'AppEntityArticle'
Результат выполнения команды:
AppEntityArticle
+---------------+------------------------------------------------------------+
| Property | Constraints |
+---------------+------------------------------------------------------------+
| title | NotBlank |
| | Length(min: 3, max: 255) |
| text | NotBlank |
| views | Positive |
| published | Type(bool) |
| createdAt | NotNull |
+---------------+------------------------------------------------------------+
Пример
Давайте создадим класс User с вложенным объектом
и ограничением Valid, чтобы посмотреть, как команда
отображает вложенные правила:
<?php
namespace AppEntity;
use SymfonyComponentValidatorConstraints as Assert;
class User
{
#[AssertNotBlank]
#[AssertEmail]
private string $email = '';
#[AssertLength(min: 8)]
private string $password = '';
#[AssertValid]
private Address $address;
}
?>
<?php
namespace AppEntity;
use SymfonyComponentValidatorConstraints as Assert;
class Address
{
#[AssertNotBlank]
private string $city = '';
#[AssertLength(min: 5, max: 10)]
private string $zip = '';
}
?>
Выполним команду для класса User:
php bin/console debug:validator 'AppEntityUser'
Результат выполнения команды:
AppEntityUser
+---------------+--------------------------------+
| Property | Constraints |
+---------------+--------------------------------+
| email | NotBlank |
| | Email |
| password | Length(min: 8) |
| address | Valid |
+---------------+--------------------------------+
Пример
Команда также умеет принимать путь к конкретному
свойству класса. Давайте выведем правила только
для поля title сущности Article:
php bin/console debug:validator 'AppEntityArticle::$title'
Результат выполнения команды:
AppEntityArticle::$title
+---------------+--------------------------------+
| Property | Constraints |
+---------------+--------------------------------+
| title | NotBlank |
| | Length(min: 3, max: 255) |
+---------------+--------------------------------+
Смотрите также
-
команда
debug:form,
которая выводит информацию о форме и её полях -
команда
debug:container,
которая показывает зарегистрированные сервисы -
команда
debug:translation,
которая выводит статус переводов -
команда
debug:autowiring,
которая показывает доступные для автовайринга сервисы