Spec-Zone.ru › Symfony 3.0

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.0/Symfony/Component/Validator/Context/ExecutionContextInterface.html

Spec-Zone.ru

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