Spec-Zone.ru › Symfony 3.2

ExecutionContext

class ExecutionContext implements ExecutionContextInterface

Контекст, используемый и создаваемый {@link ExecutionContextFactory}.

Методы

__construct(ValidatorInterface $validator, mixed $root, TranslatorInterface $translator, string|null $translationDomain = null)

Создает новый контекст выполнения.

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

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

setGroup(string|null $group)

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

setConstraint(Constraint $constraint)

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

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

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

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

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

ConstraintViolationListInterface getViolations()

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

ValidatorInterface getValidator()

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

mixed getRoot()

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

mixed getValue()

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

object|null getObject()

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

MetadataInterface|null getMetadata()

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

string getGroup()

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

getConstraint()
string|null getClassName()

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

string|null getPropertyName()

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

string getPropertyPath(string $subPath = '')

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

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)

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

Подробности

__construct(ValidatorInterface $validator, mixed $root, TranslatorInterface $translator, string|null $translationDomain = null)

Создаёт новый контекст выполнения.

Параметры

ValidatorInterface $validator Валидатор
mixed $root Корневое значение графа валидируемых объектов
TranslatorInterface $translator Переводчик
string|null $translationDomain Домен перевода для сообщений о нарушениях

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 Валидируемое ограничение

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

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

Параметры

string $message Сообщение об ошибке
array $parameters

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 Конструктор нарушения

ConstraintViolationListInterface getViolations()

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

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

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

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

mixed getRoot()

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

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

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

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

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

mixed getValue()

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

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

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

mixed Текущее валидируемое значение

object|null getObject()

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

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

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

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

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

MetadataInterface|null getMetadata()

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

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

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

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

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

string getGroup()

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

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

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

getConstraint()

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 Текущий путь к свойству. Результат может быть пустой строкой, если валидатор в настоящее время валидирует корневое значение графа валидации.

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 Хэш объекта

bool isObjectInitialized(string $cacheKey)

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

Параметры

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

Значение возврата

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

© 2004–2017 Fabien Potencier
Licensed under the MIT License.
http://api.symfony.com/3.2/Symfony/Component/Validator/Context/ExecutionContext.html

Spec-Zone.ru

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