Spec-Zone.ru › Symfony 3.1

ExecutionContextInterface устаревший

интерфейс ExecutionContextInterface

устаревший

since версия 2.5, будет удалена в 3.0. Используйте {@link Context\ExecutionContextInterface} вместо этого.

Хранит состояние валидатора во время валидации.

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

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

Мы валидируем экземпляр Person, который становится «корнем» выполнения валидации (см. {@link getRoot}). Состояние контекста после первого шага будет таким:

(Person)---($firstName: string)
   ^ \
  ($address: Address)---($street: string)

Валидатор остановился на узле Person, и корень, и значение (см. {@link getValue}) контекста указывают на экземпляр Person. Путь к свойству пуст на этом этапе (см. {@link getPropertyPath}). Метаданные контекста — это метаданные узла Person (см. {@link getMetadata}).

После перехода к свойству $firstName экземпляра Person, состояние контекста выглядит так:

(Person)---($firstName: string)
     \              ^
  ($address: Address)---($street: string)

Валидатор остановился на свойстве $firstName. Корень по-прежнему указывает на экземпляр Person, так как с него началась валидация. Путь к свойству теперь «firstName», а текущее значение — значение этого свойства.

После перехода к свойству $address и затем к свойству $street экземпляра Address, состояние контекста выглядит так:

(Person)---($firstName: string)
     \
  ($address: Address)---($street: string)
                              ^

Валидатор остановился на свойстве $street. Корень по-прежнему указывает на экземпляр Person, но путь к свойству теперь «address.street», а валидируемое значение — значение этого свойства.

Помимо корня, пути к свойству и текущего валидируемого значения, контекст выполнения также знает метаданные текущего узла (см. {@link getMetadata}), которые, например, возвращают объект {@link Mapping\PropertyMetadata} или {@link Mapping\ClassMetadata}. Контекст также содержит группу валидации, которая в настоящее время валидируется (см. {@link getGroup}), и нарушения, которые произошли до сих пор (см. {@link getViolations}).

Помимо чтения контекста выполнения, вы также можете использовать {@link addViolation} или {@link addViolationAt}, чтобы добавить новые нарушения, и {@link validate} или {@link validateValue}, чтобы валидировать значения, до которых валидатор иначе не доберется.

Методы

addViolation(string $message, array $params = array(), mixed $invalidValue = null, int|null $plural = null, int|null $code = null)

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

addViolationAt(string $subPath, string $message, array $parameters = array(), mixed $invalidValue = null, int|null $plural = null, int|null $code = null) устаревший

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

validate(mixed $value, string $subPath = '', null|string|string[] $groups = null, bool $traverse = false, bool $deep = false) устаревший

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

validateValue(mixed $value, Constraint|Constraint[] $constraints, string $subPath = '', null|string|string[] $groups = null) устаревший

Валидирует значение по отношению к ограничению.

ConstraintViolationListInterface getViolations()

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

mixed getRoot()

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

mixed getValue()

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

MetadataInterface|null getMetadata()

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

MetadataFactoryInterface getMetadataFactory() устаревший

Возвращает используемую фабрику метаданных.

string getGroup()

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

string|null getClassName()

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

string|null getPropertyName()

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

string getPropertyPath(string $subPath = '')

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

Подробности

addViolation(string $message, array $params = array(), mixed $invalidValue = null, int|null $plural = null, int|null $code = null)

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

Примечание: параметры $invalidValue, $plural и $code устарели начиная с версии 2.5 и будут удалены в версии 3.0.

Параметры

string $message Текст сообщения об ошибке
array $params Параметры, подставляемые в сообщение об ошибке
mixed $invalidValue Неверное, проверенное значение
int|null $plural Число для множественного числа сообщения
int|null $code Код нарушения

addViolationAt(string $subPath, string $message, array $parameters = array(), mixed $invalidValue = null, int|null $plural = null, int|null $code = null) устаревший

устаревший

since версия 2.5, будет удалено в 3.0. Используйте {@link Context\ExecutionContextInterface::buildViolation()} вместо этого.

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

Параметры

string $subPath Относительный путь к свойству для нарушения
string $message Текст сообщения об ошибке
array $parameters Параметры, подставляемые в сообщение об ошибке
mixed $invalidValue Неверное, проверенное значение
int|null $plural Число для множественного числа сообщения
int|null $code Код нарушения

validate(mixed $value, string $subPath = '', null|string|string[] $groups = null, bool $traverse = false, bool $deep = false) устаревший

устаревший

since версия 2.5, будет удалено в 3.0. Используйте {@link Context\ExecutionContextInterface::getValidator()} вместо этого.

Проверяет данное значение в рамках текущей валидации.

Значение может быть любым значением, распознаваемым используемой фабрикой метаданных (см. {@link MetadataFactoryInterface::getMetadata}), или массивом или итерируемым объектом таких значений.

Обычно вы проверяете значение, которое не является текущим узлом контекста выполнения. В этом случае вы можете передать аргумент {@link $subPath}, который добавляется к текущему пути свойства при создании нарушения. Например, рассмотрим следующую схему объекта:

(Person)---($address: Address)---($phoneNumber: PhoneNumber)
                    ^

Когда контекст выполнения останавливается на экземпляре Person, путь свойства — "address". Если теперь требуется проверить экземпляр PhoneNumber, передайте "phoneNumber" как подпуть, чтобы правильно задать путь свойства как "address.phoneNumber":

$context->validate($address->phoneNumber, 'phoneNumber');

Все нарушения, сгенерированные во время валидации, будут добавлены в список нарушений, к которому можно получить доступ с помощью {@link getViolations}.

Параметры

mixed $value Значение для проверки.
string $subPath Путь для добавления к пути свойства контекста.
null|string|string[] $groups Группы для валидации. Если вы не передаете никаких групп, будет использоваться текущая группа контекста.
bool $traverse Выполнять обход значения, если оно является массивом или экземпляром \Traversable.
bool $deep Выполнять рекурсивный обход значения, если это коллекция коллекций.

validateValue(mixed $value, Constraint|Constraint[] $constraints, string $subPath = '', null|string|string[] $groups = null) устаревший

устаревший

since версия 2.5, будет удалено в 3.0. Используйте {@link Context\ExecutionContextInterface::getValidator()} вместо этого.

Проверяет значение по ограничению.

Используйте параметр $subPath для адаптации пути свойства для проверяемого значения. Например, рассмотрим следующую схему объекта:

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

Когда валидатор проверяет экземпляр Address, путь свойства, хранящийся в контексте выполнения, — "address". Если теперь нужно вручную проверить свойство $street, передайте подпуть "street", чтобы адаптировать полный путь свойства к "address.street":

$context->validate($address->street, new NotNull(), 'street');

Параметры

mixed $value Значение для проверки.
Constraint|Constraint[] $constraints Ограничение(я) для проверки.
string $subPath Путь для добавления к пути свойства контекста.
null|string|string[] $groups Группы для валидации. Если вы не передаете никаких групп, будет использоваться текущая группа контекста.

ConstraintViolationListInterface getViolations()

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

Значение результата

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

mixed getRoot()

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

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

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

Значение результата

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

mixed getValue()

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

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

Значение результата

mixed В настоящее время проверяемое значение.

MetadataInterface|null getMetadata()

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

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

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

Значение результата

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

MetadataFactoryInterface getMetadataFactory() устаревший

устаревший

since версия 2.5, будет удалено в 3.0. Используйте {@link Context\ExecutionContextInterface::getValidator()} вместо этого и вызовите {@link Validator\ValidatorInterface::getMetadataFor()} или {@link Validator\ValidatorInterface::hasMetadataFor()} там.

Возвращает используемую фабрику метаданных.

Значение результата

MetadataFactoryInterface Фабрика метаданных.

string getGroup()

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

Значение результата

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

string|null getClassName()

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

Если метаданные текущего узла не реализуют {@link ClassBasedInterface} или если для текущего узла нет доступных метаданных, этот метод возвращает 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.1/Symfony/Component/Validator/ExecutionContextInterface.html

Spec-Zone.ru

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