/**
  * Validates a node's value against all constraints in the given group.
  *
  * @param mixed $value
  *   The validated value.
  * @param string $cache_key
  *   The cache key used internally to ensure we don't validate the same
  *   constraint twice.
  * @param \Symfony\Component\Validator\Constraint[] $constraints
  *   The constraints which should be ensured for the given value.
  */
 protected function validateConstraints($value, $cache_key, $constraints)
 {
     foreach ($constraints as $constraint) {
         // Prevent duplicate validation of constraints, in the case
         // that constraints belong to multiple validated groups
         if (isset($cache_key)) {
             $constraint_hash = spl_object_hash($constraint);
             if ($this->context->isConstraintValidated($cache_key, $constraint_hash)) {
                 continue;
             }
             $this->context->markConstraintAsValidated($cache_key, $constraint_hash);
         }
         $this->context->setConstraint($constraint);
         $validator = $this->constraintValidatorFactory->getInstance($constraint);
         $validator->initialize($this->context);
         $validator->validate($value, $constraint);
     }
 }
 /**
  * Validates a node's value against all constraints in the given group.
  *
  * @param mixed                     $value      The validated value
  * @param string                    $cacheKey   The key for caching the
  *                                              validated value
  * @param MetadataInterface         $metadata   The metadata of the value
  * @param string                    $group      The group to validate
  * @param ExecutionContextInterface $context    The execution context
  */
 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);
         }
         $validator = $this->validatorFactory->getInstance($constraint);
         $validator->initialize($context);
         $validator->validate($value, $constraint);
     }
 }
Exemplo n.º 3
0
 /**
  * 
  * @param Constraint
  * @return ConstraintValidatorInterface
  */
 private function getValidator(Constraint $constraint)
 {
     return $this->validatorFactory->getInstance($constraint);
 }