Spec-Zone.ru › Symfony 4.1

ExecutionContextInterface

интерфейс ExecutionContextInterface

Контекст выполнения валидации.

Контекст собирает все нарушения, сгенерированные во время валидации. По умолчанию, валидаторы выполняют все валидации в новом контексте:

$violations = $validator->validate($object);

Когда вы вызываете валидатор повторно, пока валидация ещё в процессе, нарушения будут изолированы друг от друга:

public function validate($value, Constraint $constraint)
{
    $validator = $this->context->getValidator();

    // The violations are not added to $this->context
    $violations = $validator->validate($value);
}

Однако, если вы хотите добавить нарушения в текущий контекст, используйте метод {@link ValidatorInterface::inContext()}:

public function validate($value, Constraint $constraint)
{
    $validator = $this->context->getValidator();

    // The violations are added to $this->context
    $validator
        ->inContext($this->context)
        ->validate($value)
    ;
}

Кроме того, контекст предоставляет информацию о текущем состоянии валидатора, например, о текущем классе, имя текущего свойства и т. д. Эти значения меняются со временем, поэтому вы не можете сохранить контекст и ожидать, что методы вернут те же результаты позже.

Методы

addViolation(string $message, array $params = array())

Добавляет нарушение в текущем узле графа валидации.

ConstraintViolationBuilderInterface buildViolation(string $message, array $parameters = array())

Возвращает билдер для добавления нарушения с расширенной информацией.

ValidatorInterface getValidator()

Возвращает валидатор.

object|null getObject()

Возвращает текущий проверяемый объект.

setNode(mixed $value, object|null $object, MetadataInterface $metadata = null, string $propertyPath)

Устанавливает текущее проверяемое значение.

setGroup(string|null $group)

Устанавливает текущую группу валидации.

setConstraint(Constraint $constraint)

Устанавливает текущее проверяемое ограничение.

markGroupAsValidated(string $cacheKey, string $groupHash)

Помечает объект как проверенный в определённой группе валидации.

bool isGroupValidated(string $cacheKey, string $groupHash)

Возвращает, был ли объект проверен в определённой группе валидации.

markConstraintAsValidated(string $cacheKey, string $constraintHash)

Помечает ограничение как проверенное для объекта.

bool isConstraintValidated(string $cacheKey, string $constraintHash)

Возвращает, было ли ограничение проверено для объекта.

markObjectAsInitialized(string $cacheKey)

Помечает, что объект был инициализирован.

bool isObjectInitialized(string $cacheKey)

Возвращает, был ли объект инициализирован.

ConstraintViolationListInterface getViolations()

Возвращает нарушения, сгенерированные валидатором до сих пор.

mixed getRoot()

Возвращает значение, с которого началась валидация в графе объекта.

mixed getValue()

Возвращает значение, которое в данный момент проверяет валидатор.

MetadataInterface|null getMetadata()

Возвращает метаданные для текущего проверяемого значения.

string getGroup()

Возвращает группу валидации, которая в данный момент проверяется.

string|null getClassName()

Возвращает имя класса текущего узла.

string|null getPropertyName()

Возвращает имя свойства текущего узла.

string getPropertyPath(string $subPath = '')

Возвращает путь к свойству значения, которое в данный момент проверяет валидатор.

Подробности

addViolation(string $message, array $params = array())

Добавляет нарушение в текущем узле графа валидации.

Параметры

string $message Сообщение об ошибке
array $params Параметры, подставляемые в сообщение об ошибке

ConstraintViolationBuilderInterface buildViolation(string $message, array $parameters = array())

Возвращает конструктор для добавления нарушения с расширенной информацией.

Вызовите {@link ConstraintViolationBuilderInterface::addViolation()} для добавления нарушения, когда закончите настройку:

$context->buildViolation('Please enter a number between %min% and %max%.')
    ->setParameter('%min%', 3)
    ->setParameter('%max%', 10)
    ->setTranslationDomain('number_validation')
    ->addViolation();

Параметры

string $message Сообщение об ошибке
array $parameters Параметры, подставляемые в сообщение об ошибке

Возвращаемое значение

ConstraintViolationBuilderInterface Конструктор нарушения

ValidatorInterface getValidator()

Возвращает валидатор.

Полезно, если нужно выполнить дополнительную валидацию:

public function validate($value, Constraint $constraint)
{
    $validator = $this->context->getValidator();

    $violations = $validator->validate($value, new Length(array('min' => 3)));

    if (count($violations) > 0) {
        // ...
    }
}

Возвращаемое значение

ValidatorInterface

object|null getObject()

Возвращает текущий проверяемый объект.

Если валидатор в настоящее время проверяет ограничение класса, возвращается объект этого класса. Если это ограничение свойства или метода-геттера, возвращается объект, к которому относится свойство/геттер.

В других случаях возвращается null.

Возвращаемое значение

object|null Текущий проверяемый объект или null

setNode(mixed $value, object|null $object, MetadataInterface $metadata = null, string $propertyPath)

Устанавливает текущее проверяемое значение.

Параметры

mixed $value Проверяемое значение
object|null $object Текущий проверяемый объект
MetadataInterface $metadata Данные о валидации
string $propertyPath Путь к свойству текущего значения

setGroup(string|null $group)

Устанавливает текущую группу валидации.

Параметры

string|null $group Группа валидации

setConstraint(Constraint $constraint)

Устанавливает текущее проверяемое ограничение.

Параметры

Constraint $constraint Проверяемое ограничение

markGroupAsValidated(string $cacheKey, string $groupHash)

Помечает объект как валидированный в определенной группе валидации.

Параметры

string $cacheKey Хэш объекта
string $groupHash Имя или хэш группы, если это последовательность групп

bool isGroupValidated(string $cacheKey, string $groupHash)

Возвращает, был ли объект валидирован в определенной группе валидации.

Параметры

string $cacheKey Хэш объекта
string $groupHash Имя или хэш группы, если это последовательность групп

Возвращаемое значение

bool Был ли объект валидирован для этой группы

markConstraintAsValidated(string $cacheKey, string $constraintHash)

Помечает ограничение как валидированное для объекта.

Параметры

string $cacheKey Хэш объекта
string $constraintHash Хэш ограничения

bool isConstraintValidated(string $cacheKey, string $constraintHash)

Возвращает, было ли ограничение валидировано для объекта.

Параметры

string $cacheKey Хэш объекта
string $constraintHash Хэш ограничения

Возвращаемое значение

bool Было ли ограничение уже валидировано

markObjectAsInitialized(string $cacheKey)

Помечает, что объект был инициализирован.

Параметры

string $cacheKey Хэш объекта

См. также

ObjectInitializerInterface

bool isObjectInitialized(string $cacheKey)

Возвращает, был ли объект инициализирован.

Параметры

string $cacheKey Хэш объекта

Возвращаемое значение

bool Был ли объект уже инициализирован

См. также

ObjectInitializerInterface

ConstraintViolationListInterface getViolations()

Возвращает нарушения, сгенерированные валидатором до сих пор.

Возвращаемое значение

ConstraintViolationListInterface Список нарушений

mixed getRoot()

Возвращает значение, с которого началась валидация в графе объекта.

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

Текущее значение возвращается методом {@link getValue}.

Возвращаемое значение

mixed Корневое значение валидации

mixed getValue()

Возвращает значение, которое в данный момент валидирует валидатор.

Если нужно получить объект, который был первоначально передан валидатору, используйте {@link getRoot}.

Возвращаемое значение

mixed Текущее проверяемое значение

MetadataInterface|null getMetadata()

Возвращает метаданные для текущего проверяемого значения.

В стандартной реализации этот метод возвращает экземпляр {@link Mapping\ClassMetadataInterface}, если текущее значение является объектом, экземпляр {@link Mapping\PropertyMetadata} если текущее значение — значение свойства, и экземпляр {@link Mapping\GetterMetadata} если проверяемое значение — результат метода-геттера.

Если проверяемое значение не является ни одним из этих типов, например, если валидатор был вызван с простым значением и ограничением, этот метод возвращает null.

Возвращаемое значение

MetadataInterface|null метаданные текущего проверяемого значения

string getGroup()

Возвращает группу валидации, которая в настоящее время проверяется.

Возвращаемое значение

string Текущая группа валидации

string|null getClassName()

Возвращает имя класса текущего узла.

Если метаданные текущего узла не реализуют {@link Mapping\ClassMetadataInterface} или если для текущего узла нет доступных метаданных, этот метод возвращает null.

Возвращаемое значение

string|null Имя класса или null, если имя класса не найдено

string|null getPropertyName()

Возвращает имя свойства текущего узла.

Если метаданные текущего узла не реализуют {@link PropertyMetadataInterface} или если для текущего узла нет доступных метаданных, этот метод возвращает null.

Возвращаемое значение

string|null Имя свойства или null, если имя свойства не найдено

string getPropertyPath(string $subPath = '')

Возвращает путь к свойству значения, которое в настоящее время проверяется валидатором.

Например, рассмотрим следующую структуру объекта:

(Person)---($address: Address)---($street: string)

Когда экземпляр Person передается валидатору, путь к свойству изначально пустой. Когда проверяется свойство $address этого человека, путь к свойству — "address". Когда проверяется свойство $street связанного экземпляра Address, путь к свойству — "address.street".

Свойства объектов имеют префикс точки в пути к свойству. Индексы массивов или объектов, реализующих интерфейс {@link \ArrayAccess}, заключены в квадратные скобки. Например, если свойство в предыдущем примере — $addresses и содержит массив экземпляров Address, путь к свойству $street одного из этих адресов будет, например, "addresses[0].street".

Параметры

string $subPath Необязательно. Приставка, добавляемая к текущему пути к свойству.

Возвращаемое значение

string Текущий путь к свойству. Результат может быть пустой строкой, если валидатор в данный момент проверяет корневое значение графа валидации.

© 2004–2017 Fabien Potencier
Licensed under the MIT License.
https://api.symfony.com/4.1/Symfony/Component/Validator/Context/ExecutionContextInterface.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API