Spec-Zone.ru › Symfony 3.2

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->validateValue($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.
http://api.symfony.com/3.2/Symfony/Component/Validator/Context/ExecutionContextInterface.html

Spec-Zone.ru

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