Spec-Zone.ru › Symfony 2.8

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

deprecated

since version 2.5, to be removed in 3.0. Use {@link Context\ExecutionContextInterface::buildViolation()} instead.

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

Параметры

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

deprecated

since version 2.5, to be removed in 3.0. Use {@link Context\ExecutionContextInterface::getValidator()} instead.

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

Значение может быть любым значением, распознаваемым используемой фабрикой метаданных (см. {@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) deprecated

deprecated

since version 2.5, to be removed in 3.0. Use {@link Context\ExecutionContextInterface::getValidator()} instead.

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

Используйте параметр $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() deprecated

deprecated

since version 2.5, to be removed in 3.0. Use {@link Context\ExecutionContextInterface::getValidator()} instead and call {@link Validator\ValidatorInterface::getMetadataFor()} or {@link Validator\ValidatorInterface::hasMetadataFor()} there.

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

Значение, возвращаемое функцией

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

Spec-Zone.ru

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