Spec-Zone.ru › Symfony 3.2

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

Когда контекст выполнения останавливается на экземпляре 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 устарело

устарело

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

Spec-Zone.ru

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