Spec-Zone.ru › Symfony 3.0

ExecutionContextInterface deprecated

интерфейс ExecutionContextInterface

deprecated

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) deprecated

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

validate(mixed $value, string $subPath = '', null|string|string[] $groups = null, bool $traverse = false, bool $deep = false) deprecated

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

validateValue(mixed $value, Constraint|Constraint[] $constraints, string $subPath = '', null|string|string[] $groups = null) deprecated

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

ConstraintViolationListInterface getViolations()

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

mixed getRoot()

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

mixed getValue()

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

MetadataInterface|null getMetadata()

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

MetadataFactoryInterface getMetadataFactory() deprecated

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

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)
                    ^
\n

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

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

Любые нарушения, созданные во время проверки, будут добавлены в список нарушений, к которому вы можете получить доступ с помощью {@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)
                    ^
\n

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

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

Параметры

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 устаревший

устаревший

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)
\n

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

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

Properties of objects are prefixed with a dot in the property path.

Параметры

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

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

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

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

Spec-Zone.ru

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