
| Current Path : /var/www/html1/bebop-gmuend.de1/core/lib/Drupal/Core/Validation/ |
Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 |
| Current File : /var/www/html1/bebop-gmuend.de1/core/lib/Drupal/Core/Validation/ConstraintValidatorFactory.php |
<?php
namespace Drupal\Core\Validation;
use Drupal\Core\DependencyInjection\ClassResolverInterface;
use Symfony\Component\Validator\Constraint;
use Symfony\Component\Validator\ConstraintValidatorFactory as BaseConstraintValidatorFactory;
/**
* Defines a constraint validator factory that works with container injection.
*
* @TODO Decide what to do with this class or how to reuse constraint
* validators in https://drupal.org/project/drupal/issues/3097071
*/
class ConstraintValidatorFactory extends BaseConstraintValidatorFactory {
/**
* Constructs a new ConstraintValidatorFactory.
*
* @param \Drupal\Core\DependencyInjection\ClassResolverInterface $class_resolver
*/
public function __construct(ClassResolverInterface $class_resolver) {
$this->classResolver = $class_resolver;
}
/**
* {@inheritdoc}
*/
public function getInstance(Constraint $constraint) {
$class_name = $constraint->validatedBy();
// Constraint validator instances should always be initialized newly and
// never shared, because the current validation context is getting injected
// into them through setter injection and in a case of a recursive
// validation where a validator triggers a validation chain leading to the
// same validator the context of the first call would be exchanged with the
// one of the subsequent validation chain.
return $this->classResolver->getInstanceFromDefinition($class_name);
}
}