You are here

private function RecursiveContextualValidator::validateInGroup in Plug 7

Validates a node's value against all constraints in the given group.

Parameters

mixed $value The validated value:

string $cacheKey The key for caching the: validated value

MetadataInterface $metadata The metadata of the value:

string $group The group to validate:

ExecutionContextInterface $context The execution context:

2 calls to RecursiveContextualValidator::validateInGroup()
RecursiveContextualValidator::validateClassNode in lib/Symfony/validator/Symfony/Component/Validator/Validator/RecursiveContextualValidator.php
Validates a class node.
RecursiveContextualValidator::validateGenericNode in lib/Symfony/validator/Symfony/Component/Validator/Validator/RecursiveContextualValidator.php
Validates a node that is not a class node.

File

lib/Symfony/validator/Symfony/Component/Validator/Validator/RecursiveContextualValidator.php, line 841

Class

RecursiveContextualValidator
Recursive implementation of {@link ContextualValidatorInterface}.

Namespace

Symfony\Component\Validator\Validator

Code

private function validateInGroup($value, $cacheKey, MetadataInterface $metadata, $group, ExecutionContextInterface $context) {
  $context
    ->setGroup($group);
  foreach ($metadata
    ->findConstraints($group) as $constraint) {

    // Prevent duplicate validation of constraints, in the case
    // that constraints belong to multiple validated groups
    if (null !== $cacheKey) {
      $constraintHash = spl_object_hash($constraint);
      if ($context
        ->isConstraintValidated($cacheKey, $constraintHash)) {
        continue;
      }
      $context
        ->markConstraintAsValidated($cacheKey, $constraintHash);
    }
    $context
      ->setConstraint($constraint);
    $validator = $this->validatorFactory
      ->getInstance($constraint);
    $validator
      ->initialize($context);
    $validator
      ->validate($value, $constraint);
  }
}