Allow validator without the translator

This commit is contained in:
Samuel ROZE 2018-09-19 19:19:15 +01:00
parent cb13594826
commit 2dc92d7a4b

View File

@ -49,11 +49,17 @@ class AddValidatorInitializersPass implements CompilerPassInterface
// @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();