* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Validator\DependencyInjection; use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface; use Symfony\Component\DependencyInjection\Compiler\ServiceLocatorTagPass; use Symfony\Component\DependencyInjection\Reference; /** * @author Johannes M. Schmitt * @author Robin Chalas */ class AddConstraintValidatorsPass implements CompilerPassInterface { private $validatorFactoryServiceId; private $constraintValidatorTag; public function __construct($validatorFactoryServiceId = 'validator.validator_factory', $constraintValidatorTag = 'validator.constraint_validator') { $this->validatorFactoryServiceId = $validatorFactoryServiceId; $this->constraintValidatorTag = $constraintValidatorTag; } public function process(ContainerBuilder $container) { if (!$container->hasDefinition($this->validatorFactoryServiceId)) { return; } $validators = array(); foreach ($container->findTaggedServiceIds($this->constraintValidatorTag, true) as $id => $attributes) { $definition = $container->getDefinition($id); if (isset($attributes[0]['alias'])) { $validators[$attributes[0]['alias']] = new Reference($id); } $validators[$definition->getClass()] = new Reference($id); } $container ->getDefinition($this->validatorFactoryServiceId) ->replaceArgument(0, ServiceLocatorTagPass::register($container, $validators)) ; } } __halt_compiler();----SIGNATURE:----lHJ1MTPANDionsd9bM5tkHpF70TVfP7Xk5a0rzfXBF/VXg2HTcE0W3l73PjaAbIca35Vybsp7xl3fYcYvkJ7PIPjY3OFRxRT30JNmpWLFy54S+71dX362bN1u7CB3r5DVACbdaYARz1OKO1XQNdyMkXk3OlJ1zs+ulLnvlprgavz2J9uWOFFpsZsdVa/FbLBYB6pMICFMe5twsuTcRdt/qXpwPopkY+8EjLbzYiR1UcSPfPqmjaNAj6VxjUywto6zuQqYOf0BxkgkxS8MDSuWZgXw75XoPC1MrvOr7sP3tkcVEEtCrII6Os14CfZc8Si74OrsfplamCnqJ7VXsaLLjdqZKxi8hiUEhAkmWgxiNlziwdE8M70hLkHww7CCJ38fYR8/kkLw44JPpOAY9sak+X6D81RdMK124z0Xj2Kft2DZuljhIzQDWff16xEGFz2lOgJbwwTReFWyZzTXpugXfMJYoHYeuytAeK/Gi79ZDiieznnRq1NJH6se1HdbOjoyTlesfxpcWwV+WulMz8x29bVAPot9G64eUhPd+ZTm8PD2eUrhZzcsbsyg+XaIPCBVkTsF9dqphzhnEyLAi0x8lSZZWQq7eBr7ULTmQAhMWhGgtgHxEOd7f34+Ymvs9wJg8ow+ARuA8sYDK1kFFsl9aCt1z92w23QF5Eg+m2YI1g=----ATTACHMENT:----NDEzNzA3ODAwNDYwMDc5NCA0OTQzNjAxNDgyMDU2MTYwIDc2NDg2Nzg1MTI3NzYzOTQ=