Spec-Zone.ru › Symfony 2.8

ExecutionContext

class ExecutionContext implements ExecutionContextInterface

Контекст, используемый и создаваемый {@link ExecutionContextFactory}.

Методы

__construct(ValidatorInterface $validator, mixed $root, TranslatorInterface $translator, string|null $translationDomain = null)

Создаёт новый контекст выполнения.

setNode(mixed $value, object|null $object, MetadataInterface $metadata = null, string $propertyPath)

Устанавливает текущее проверяемое значение.

setGroup(string|null $group)

Устанавливает текущую проверяемую группу.

setConstraint(Constraint $constraint)

Устанавливает текущее проверяемое ограничение.

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

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

ConstraintViolationBuilderInterface buildViolation(string $message, array $parameters = array())

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

ConstraintViolationListInterface getViolations()

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

ValidatorInterface getValidator()

Возвращает валидатор.

mixed getRoot()

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

mixed getValue()

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

object|null getObject()

Возвращает текущий проверяемый объект.

MetadataInterface|null getMetadata()

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

string getGroup()

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

getConstraint()
string|null getClassName()

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

string|null getPropertyName()

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

string getPropertyPath(string $subPath = '')

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

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)

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

MetadataFactoryInterface getMetadataFactory()

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

markGroupAsValidated(string $cacheKey, string $groupHash)

Помечает объект как проверенный в определённой группе проверки.

bool isGroupValidated(string $cacheKey, string $groupHash)

Возвращает, был ли объект проверен в определённой группе проверки.

markConstraintAsValidated(string $cacheKey, string $constraintHash)

Помечает ограничение как проверенное для объекта.

bool isConstraintValidated(string $cacheKey, string $constraintHash)

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

markObjectAsInitialized(string $cacheKey)

Помечает, что объект был инициализирован.

bool isObjectInitialized(string $cacheKey)

Возвращает, был ли объект инициализирован.

Подробности

__construct(ValidatorInterface $validator, mixed $root, TranslatorInterface $translator, string|null $translationDomain = null)

Создает новый контекст выполнения.

Параметры

ValidatorInterface $validator Валидатор
mixed $root Корневое значение графа валидируемых объектов
TranslatorInterface $translator Переводчик
string|null $translationDomain Домен перевода для использования при переводе сообщений о нарушениях

setNode(mixed $value, object|null $object, MetadataInterface $metadata = null, string $propertyPath)

Устанавливает текущее проверяемое значение.

Параметры

mixed $value Проверяемое значение
object|null $object Текущий проверяемый объект
MetadataInterface $metadata Метаданные валидации
string $propertyPath Путь к свойству текущего значения

setGroup(string|null $group)

Устанавливает текущую проверяемую группу.

Параметры

string|null $group Проверяемая группа

setConstraint(Constraint $constraint)

Устанавливает текущее проверяемое ограничение.

Параметры

Constraint $constraint Проверяемое ограничение

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

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

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

Параметры

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

ConstraintViolationBuilderInterface buildViolation(string $message, array $parameters = array())

Возвращает билдер для добавления нарушения с расширенной информацией.

Вызовите {@link ConstraintViolationBuilderInterface::addViolation()}, чтобы добавить нарушение, когда закончите с настройками:

$context->buildViolation('Please enter a number between %min% and %max%.')
    ->setParameter('%min%', 3)
    ->setParameter('%max%', 10)
    ->setTranslationDomain('number_validation')
    ->addViolation();

Параметры

string $message Сообщение об ошибке
array $parameters Параметры, подставляемые в сообщение об ошибке

Значение

ConstraintViolationBuilderInterface Билдер нарушения

ConstraintViolationListInterface getViolations()

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

Значение

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

ValidatorInterface getValidator()

Возвращает валидатор.

Полезно, если вы хотите валидировать дополнительные ограничения:

public function validate($value, Constraint $constraint)
{
    $validator = $this->context->getValidator();

    $violations = $validator->validateValue($value, new Length(array('min' => 3)));

    if (count($violations) > 0) {
        // ...
    }
}

Значение

ValidatorInterface

mixed getRoot()

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

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

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

Значение

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

mixed getValue()

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

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

Значение

mixed Текущее проверяемое значение

object|null getObject()

Возвращает текущий проверяемый объект.

Если валидатор в данный момент проверяет ограничение класса, возвращается объект этого класса. Если он проверяет ограничение свойства или метода-геттера, возвращается объект, к которому принадлежит свойство/геттер.

В других случаях возвращается null.

Значение

object|null Текущий проверяемый объект или null

MetadataInterface|null getMetadata()

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

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

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

Значение

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

string getGroup()

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

Значение

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

getConstraint()

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 Текущий путь к свойству. Результат может быть пустой строкой, если валидатор в данный момент проверяет корневое значение графа валидации.

addViolationAt(string $subPath, string $message, array $parameters = array(), mixed $invalidValue = null, int|null $plural = null, int|null $code = null)

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

Параметры

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)

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

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

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

Используйте параметр $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 Группы для проверки. Если вы не передаете никакие группы, будет использоваться текущая группа контекста.

MetadataFactoryInterface getMetadataFactory()

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

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

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

markGroupAsValidated(string $cacheKey, string $groupHash)

Помечает объект как проверенный в определенной группе проверки.

Параметры

string $cacheKey Хэш объекта
string $groupHash Имя или хэш группы, если это последовательность групп

bool isGroupValidated(string $cacheKey, string $groupHash)

Возвращает, был ли объект проверен в определенной группе проверки.

Параметры

string $cacheKey Хэш объекта
string $groupHash Имя или хэш группы, если это последовательность групп

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

bool Был ли объект уже проверен для данной группы

markConstraintAsValidated(string $cacheKey, string $constraintHash)

Помечает ограничение как проверенное для объекта.

Параметры

string $cacheKey Хэш объекта
string $constraintHash Хэш ограничения

bool isConstraintValidated(string $cacheKey, string $constraintHash)

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

Параметры

string $cacheKey Хэш объекта
string $constraintHash Хэш ограничения

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

bool Было ли ограничение уже проверено

markObjectAsInitialized(string $cacheKey)

Помечает, что объект был инициализирован.

Параметры

string $cacheKey Хэш объекта

bool isObjectInitialized(string $cacheKey)

Возвращает, был ли объект инициализирован.

Параметры

string $cacheKey Хэш объекта

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

bool Был ли объект уже инициализирован

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

Spec-Zone.ru

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