/** * 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); } $context->setConstraint($constraint); $validator = $this->validatorFactory->getInstance($constraint); $validator->initialize($context); $validator->validate($value, $constraint); } }