classResolver = $class_resolver; } /** * {@inheritdoc} */ public function getInstance(Constraint $constraint): ConstraintValidatorInterface { $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); } }