diff --git a/src/Symfony/Component/Validator/DependencyInjection/AddValidatorInitializersPass.php b/src/Symfony/Component/Validator/DependencyInjection/AddValidatorInitializersPass.php index 6021906cb18c8..4539e27bd3adf 100644 --- a/src/Symfony/Component/Validator/DependencyInjection/AddValidatorInitializersPass.php +++ b/src/Symfony/Component/Validator/DependencyInjection/AddValidatorInitializersPass.php @@ -49,11 +49,17 @@ public function process(ContainerBuilder $container) // @deprecated logic, to be removed in Symfony 5.0 $builder = $container->getDefinition($this->builderService); - $calls = []; + $calls = array(); foreach ($builder->getMethodCalls() as list($method, $arguments)) { if ('setTranslator' === $method) { - $translator = $arguments[0] instanceof Reference ? $container->findDefinition($arguments[0]) : $arguments[0]; + if (!$arguments[0] instanceof Reference) { + $translator = $arguments[0]; + } elseif ($container->has($arguments[0])) { + $translator = $container->findDefinition($arguments[0]); + } else { + continue; + } while (!($class = $translator->getClass()) && $translator instanceof ChildDefinition) { $translator = $translator->getParent();