ExecutionContextInterface устаревший
интерфейс 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
Добавляет нарушение в узел графа валидации с заданным путем свойства относительно текущего пути свойства.
Параметры
| 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
Проверяет заданное значение в рамках текущего процесса валидации.
Значение может быть любым значением, распознаваемым используемой фабрикой метаданных (см. {@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
Проверяет значение по ограничению.
Используйте параметр $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
Возвращает используемую фабрику метаданных.
Значение, возвращаемое функцией
| 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.7/Symfony/Component/Validator/ExecutionContextInterface.html