protected function RecursiveContextualValidator::validateConstraints

protected RecursiveContextualValidator::validateConstraints($value, $cache_key, $constraints)

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

Parameters

mixed $value: The validated value.

string $cache_key: The cache key used internally to ensure we don't validate the same constraint twice.

\Symfony\Component\Validator\Constraint[] $constraints: The constraints which should be ensured for the given value.

File

core/lib/Drupal/Core/TypedData/Validation/RecursiveContextualValidator.php, line 167

Class

RecursiveContextualValidator
Defines a recursive contextual validator for Typed Data.

Namespace

Drupal\Core\TypedData\Validation

Code

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);
  }
}

© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/core!lib!Drupal!Core!TypedData!Validation!RecursiveContextualValidator.php/function/RecursiveContextualValidator::validateConstraints/8.1.x