From 7c3df251d5680bb3eeb9a4d8296999af8cc1edb4 Mon Sep 17 00:00:00 2001 From: Steve Nebes Date: Wed, 17 Apr 2019 21:58:13 -0500 Subject: [PATCH 1/9] FWB - Legacy translator check --- .../DependencyInjection/FrameworkExtension.php | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php index a52caa46c032d..6da643c791042 100644 --- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php +++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php @@ -106,6 +106,7 @@ use Symfony\Contracts\Cache\CacheInterface; use Symfony\Contracts\Service\ResetInterface; use Symfony\Contracts\Service\ServiceSubscriberInterface; +use Symfony\Contracts\Translation\TranslatorInterface; /** * FrameworkExtension. @@ -1109,9 +1110,14 @@ private function registerValidationConfiguration(array $config, ContainerBuilder $validatorBuilder = $container->getDefinition('validator.builder'); if (class_exists(LegacyTranslatorProxy::class)) { - $calls = $validatorBuilder->getMethodCalls(); - $calls[1] = ['setTranslator', [new Definition(LegacyTranslatorProxy::class, [new Reference('translator')])]]; - $validatorBuilder->setMethodCalls($calls); + $translatorClass = $container->getDefinition('translator')->getClass(); + $translatorInterfaces = class_implements($translatorClass); + + if (!in_array(TranslatorInterface::class, $translatorInterfaces)) { + $calls = $validatorBuilder->getMethodCalls(); + $calls[1] = ['setTranslator', [new Definition(LegacyTranslatorProxy::class, [new Reference('translator')])]]; + $validatorBuilder->setMethodCalls($calls); + } } $container->setParameter('validator.translation_domain', $config['translation_domain']); From 2d98750c80b91a6c3aee2f66ebb57dd56736ef37 Mon Sep 17 00:00:00 2001 From: Steve Nebes Date: Wed, 17 Apr 2019 22:11:42 -0500 Subject: [PATCH 2/9] FWB - Legacy translator check --- .../Tests/DependencyInjection/FrameworkExtensionTest.php | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php index b6b520daa19cb..bb06d0f8acc6c 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php @@ -52,6 +52,7 @@ use Symfony\Component\Validator\DependencyInjection\AddConstraintValidatorsPass; use Symfony\Component\Validator\Util\LegacyTranslatorProxy; use Symfony\Component\Workflow; +use Symfony\Contracts\Translation\TranslatorInterface; abstract class FrameworkExtensionTest extends TestCase { @@ -819,11 +820,7 @@ public function testValidation() $this->assertSame('setConstraintValidatorFactory', $calls[0][0]); $this->assertEquals([new Reference('validator.validator_factory')], $calls[0][1]); $this->assertSame('setTranslator', $calls[1][0]); - if (class_exists(LegacyTranslatorProxy::class)) { - $this->assertEquals([new Definition(LegacyTranslatorProxy::class, [new Reference('translator')])], $calls[1][1]); - } else { - $this->assertEquals([new Reference('translator')], $calls[1][1]); - } + $this->assertEquals([new Reference('translator')], $calls[1][1]); $this->assertSame('setTranslationDomain', $calls[2][0]); $this->assertSame(['%validator.translation_domain%'], $calls[2][1]); $this->assertSame('addXmlMappings', $calls[3][0]); From 7c8d24e0e3671d8def461f76779c3612c81f2c41 Mon Sep 17 00:00:00 2001 From: Steve Nebes Date: Wed, 17 Apr 2019 22:18:28 -0500 Subject: [PATCH 3/9] FWB - Legacy translator check --- .../Tests/DependencyInjection/FrameworkExtensionTest.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php index bb06d0f8acc6c..862786c9b8b80 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php @@ -50,9 +50,7 @@ use Symfony\Component\Serializer\Serializer; use Symfony\Component\Translation\DependencyInjection\TranslatorPass; use Symfony\Component\Validator\DependencyInjection\AddConstraintValidatorsPass; -use Symfony\Component\Validator\Util\LegacyTranslatorProxy; use Symfony\Component\Workflow; -use Symfony\Contracts\Translation\TranslatorInterface; abstract class FrameworkExtensionTest extends TestCase { From f92bde1e64762f07afc64bf5d4a8fe7c3c9958a6 Mon Sep 17 00:00:00 2001 From: Steve Nebes Date: Wed, 17 Apr 2019 22:19:07 -0500 Subject: [PATCH 4/9] FWB - Legacy translator check --- .../FrameworkBundle/DependencyInjection/FrameworkExtension.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php index 6da643c791042..ca44273dee7d5 100644 --- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php +++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php @@ -1113,7 +1113,7 @@ private function registerValidationConfiguration(array $config, ContainerBuilder $translatorClass = $container->getDefinition('translator')->getClass(); $translatorInterfaces = class_implements($translatorClass); - if (!in_array(TranslatorInterface::class, $translatorInterfaces)) { + if (!\in_array(TranslatorInterface::class, $translatorInterfaces)) { $calls = $validatorBuilder->getMethodCalls(); $calls[1] = ['setTranslator', [new Definition(LegacyTranslatorProxy::class, [new Reference('translator')])]]; $validatorBuilder->setMethodCalls($calls); From 668e80b6f96f6d85127951c0ecb4cda659f16492 Mon Sep 17 00:00:00 2001 From: Steve Nebes Date: Wed, 17 Apr 2019 22:43:43 -0500 Subject: [PATCH 5/9] FWB - Legacy translator check --- .../DependencyInjection/FrameworkExtension.php | 12 +++--------- .../DependencyInjection/FrameworkExtensionTest.php | 7 ++++++- src/Symfony/Bundle/FrameworkBundle/composer.json | 4 ++-- 3 files changed, 11 insertions(+), 12 deletions(-) diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php index ca44273dee7d5..a52caa46c032d 100644 --- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php +++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php @@ -106,7 +106,6 @@ use Symfony\Contracts\Cache\CacheInterface; use Symfony\Contracts\Service\ResetInterface; use Symfony\Contracts\Service\ServiceSubscriberInterface; -use Symfony\Contracts\Translation\TranslatorInterface; /** * FrameworkExtension. @@ -1110,14 +1109,9 @@ private function registerValidationConfiguration(array $config, ContainerBuilder $validatorBuilder = $container->getDefinition('validator.builder'); if (class_exists(LegacyTranslatorProxy::class)) { - $translatorClass = $container->getDefinition('translator')->getClass(); - $translatorInterfaces = class_implements($translatorClass); - - if (!\in_array(TranslatorInterface::class, $translatorInterfaces)) { - $calls = $validatorBuilder->getMethodCalls(); - $calls[1] = ['setTranslator', [new Definition(LegacyTranslatorProxy::class, [new Reference('translator')])]]; - $validatorBuilder->setMethodCalls($calls); - } + $calls = $validatorBuilder->getMethodCalls(); + $calls[1] = ['setTranslator', [new Definition(LegacyTranslatorProxy::class, [new Reference('translator')])]]; + $validatorBuilder->setMethodCalls($calls); } $container->setParameter('validator.translation_domain', $config['translation_domain']); diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php index 862786c9b8b80..b6b520daa19cb 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php @@ -50,6 +50,7 @@ use Symfony\Component\Serializer\Serializer; use Symfony\Component\Translation\DependencyInjection\TranslatorPass; use Symfony\Component\Validator\DependencyInjection\AddConstraintValidatorsPass; +use Symfony\Component\Validator\Util\LegacyTranslatorProxy; use Symfony\Component\Workflow; abstract class FrameworkExtensionTest extends TestCase @@ -818,7 +819,11 @@ public function testValidation() $this->assertSame('setConstraintValidatorFactory', $calls[0][0]); $this->assertEquals([new Reference('validator.validator_factory')], $calls[0][1]); $this->assertSame('setTranslator', $calls[1][0]); - $this->assertEquals([new Reference('translator')], $calls[1][1]); + if (class_exists(LegacyTranslatorProxy::class)) { + $this->assertEquals([new Definition(LegacyTranslatorProxy::class, [new Reference('translator')])], $calls[1][1]); + } else { + $this->assertEquals([new Reference('translator')], $calls[1][1]); + } $this->assertSame('setTranslationDomain', $calls[2][0]); $this->assertSame(['%validator.translation_domain%'], $calls[2][1]); $this->assertSame('addXmlMappings', $calls[3][0]); diff --git a/src/Symfony/Bundle/FrameworkBundle/composer.json b/src/Symfony/Bundle/FrameworkBundle/composer.json index 44bb6b0396190..14705f3f201d7 100644 --- a/src/Symfony/Bundle/FrameworkBundle/composer.json +++ b/src/Symfony/Bundle/FrameworkBundle/composer.json @@ -28,7 +28,8 @@ "symfony/polyfill-mbstring": "~1.0", "symfony/filesystem": "~3.4|~4.0", "symfony/finder": "~3.4|~4.0", - "symfony/routing": "^4.1" + "symfony/routing": "^4.2", + "symfony/translation": "^4.2" }, "require-dev": { "doctrine/cache": "~1.0", @@ -48,7 +49,6 @@ "symfony/security-csrf": "~3.4|~4.0", "symfony/serializer": "^4.2", "symfony/stopwatch": "~3.4|~4.0", - "symfony/translation": "~4.2", "symfony/templating": "~3.4|~4.0", "symfony/validator": "^4.1", "symfony/var-dumper": "~3.4|~4.0", From c83d3dddbc30555d3bf57766bfd85e50714a0bdc Mon Sep 17 00:00:00 2001 From: Steve Nebes Date: Wed, 17 Apr 2019 22:44:14 -0500 Subject: [PATCH 6/9] FWB - Legacy translator check --- src/Symfony/Bundle/FrameworkBundle/composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Bundle/FrameworkBundle/composer.json b/src/Symfony/Bundle/FrameworkBundle/composer.json index 14705f3f201d7..ec7e3d30622de 100644 --- a/src/Symfony/Bundle/FrameworkBundle/composer.json +++ b/src/Symfony/Bundle/FrameworkBundle/composer.json @@ -28,7 +28,7 @@ "symfony/polyfill-mbstring": "~1.0", "symfony/filesystem": "~3.4|~4.0", "symfony/finder": "~3.4|~4.0", - "symfony/routing": "^4.2", + "symfony/routing": "^4.1", "symfony/translation": "^4.2" }, "require-dev": { From 331a885d32b2b2233fe38ebff75f3f150867e449 Mon Sep 17 00:00:00 2001 From: Steve Nebes Date: Wed, 17 Apr 2019 23:06:44 -0500 Subject: [PATCH 7/9] FWB - Legacy translator check --- .../DependencyInjection/FrameworkExtension.php | 6 ------ .../Tests/DependencyInjection/FrameworkExtensionTest.php | 6 +----- src/Symfony/Bundle/FrameworkBundle/composer.json | 4 ++-- .../DependencyInjection/AddValidatorInitializersPass.php | 2 +- src/Symfony/Component/Validator/ValidatorBuilder.php | 6 +----- src/Symfony/Component/Validator/composer.json | 4 ++-- 6 files changed, 7 insertions(+), 21 deletions(-) diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php index a52caa46c032d..cc94ea5ca3427 100644 --- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php +++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php @@ -1108,12 +1108,6 @@ private function registerValidationConfiguration(array $config, ContainerBuilder $validatorBuilder = $container->getDefinition('validator.builder'); - if (class_exists(LegacyTranslatorProxy::class)) { - $calls = $validatorBuilder->getMethodCalls(); - $calls[1] = ['setTranslator', [new Definition(LegacyTranslatorProxy::class, [new Reference('translator')])]]; - $validatorBuilder->setMethodCalls($calls); - } - $container->setParameter('validator.translation_domain', $config['translation_domain']); $files = ['xml' => [], 'yml' => []]; diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php index b6b520daa19cb..62ccf05ecfe56 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php @@ -819,11 +819,7 @@ public function testValidation() $this->assertSame('setConstraintValidatorFactory', $calls[0][0]); $this->assertEquals([new Reference('validator.validator_factory')], $calls[0][1]); $this->assertSame('setTranslator', $calls[1][0]); - if (class_exists(LegacyTranslatorProxy::class)) { - $this->assertEquals([new Definition(LegacyTranslatorProxy::class, [new Reference('translator')])], $calls[1][1]); - } else { - $this->assertEquals([new Reference('translator')], $calls[1][1]); - } + $this->assertEquals([new Reference('translator')], $calls[1][1]); $this->assertSame('setTranslationDomain', $calls[2][0]); $this->assertSame(['%validator.translation_domain%'], $calls[2][1]); $this->assertSame('addXmlMappings', $calls[3][0]); diff --git a/src/Symfony/Bundle/FrameworkBundle/composer.json b/src/Symfony/Bundle/FrameworkBundle/composer.json index ec7e3d30622de..44bb6b0396190 100644 --- a/src/Symfony/Bundle/FrameworkBundle/composer.json +++ b/src/Symfony/Bundle/FrameworkBundle/composer.json @@ -28,8 +28,7 @@ "symfony/polyfill-mbstring": "~1.0", "symfony/filesystem": "~3.4|~4.0", "symfony/finder": "~3.4|~4.0", - "symfony/routing": "^4.1", - "symfony/translation": "^4.2" + "symfony/routing": "^4.1" }, "require-dev": { "doctrine/cache": "~1.0", @@ -49,6 +48,7 @@ "symfony/security-csrf": "~3.4|~4.0", "symfony/serializer": "^4.2", "symfony/stopwatch": "~3.4|~4.0", + "symfony/translation": "~4.2", "symfony/templating": "~3.4|~4.0", "symfony/validator": "^4.1", "symfony/var-dumper": "~3.4|~4.0", diff --git a/src/Symfony/Component/Validator/DependencyInjection/AddValidatorInitializersPass.php b/src/Symfony/Component/Validator/DependencyInjection/AddValidatorInitializersPass.php index dcc02ca694589..ad5c25ce46962 100644 --- a/src/Symfony/Component/Validator/DependencyInjection/AddValidatorInitializersPass.php +++ b/src/Symfony/Component/Validator/DependencyInjection/AddValidatorInitializersPass.php @@ -65,7 +65,7 @@ public function process(ContainerBuilder $container) $translator = $translator->getParent(); } - if (!is_subclass_of($class, LegacyTranslatorInterface::class)) { + if (class_exists(LegacyTranslatorProxy::class)) { $arguments[0] = (new Definition(LegacyTranslatorProxy::class))->addArgument($arguments[0]); } } diff --git a/src/Symfony/Component/Validator/ValidatorBuilder.php b/src/Symfony/Component/Validator/ValidatorBuilder.php index 0766a2e9f399a..fb643327125d5 100644 --- a/src/Symfony/Component/Validator/ValidatorBuilder.php +++ b/src/Symfony/Component/Validator/ValidatorBuilder.php @@ -258,11 +258,7 @@ public function setConstraintValidatorFactory(ConstraintValidatorFactoryInterfac */ public function setTranslator(LegacyTranslatorInterface $translator) { - $this->translator = $translator; - - while ($this->translator instanceof LegacyTranslatorProxy) { - $this->translator = $this->translator->getTranslator(); - } + $this->translator = $translator instanceof LegacyTranslatorProxy ? $translator->getTranslator() : $translator; return $this; } diff --git a/src/Symfony/Component/Validator/composer.json b/src/Symfony/Component/Validator/composer.json index 88a29241f57c7..a25a791865d30 100644 --- a/src/Symfony/Component/Validator/composer.json +++ b/src/Symfony/Component/Validator/composer.json @@ -19,7 +19,8 @@ "php": "^7.1.3", "symfony/contracts": "^1.0.2", "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.0" + "symfony/polyfill-mbstring": "~1.0", + "symfony/translation": "~4.2" }, "require-dev": { "symfony/http-foundation": "~4.1", @@ -32,7 +33,6 @@ "symfony/expression-language": "~3.4|~4.0", "symfony/cache": "~3.4|~4.0", "symfony/property-access": "~3.4|~4.0", - "symfony/translation": "~4.2", "doctrine/annotations": "~1.0", "doctrine/cache": "~1.0", "egulias/email-validator": "^1.2.8|~2.0" From 7a03ae432050e451513d02aed34093b0a8baad60 Mon Sep 17 00:00:00 2001 From: Steve Nebes Date: Wed, 17 Apr 2019 23:12:35 -0500 Subject: [PATCH 8/9] FWB - Legacy translator check --- .../FrameworkBundle/DependencyInjection/FrameworkExtension.php | 1 - .../Tests/DependencyInjection/FrameworkExtensionTest.php | 1 - .../DependencyInjection/AddValidatorInitializersPass.php | 1 - 3 files changed, 3 deletions(-) diff --git a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php index cc94ea5ca3427..b390f2978113b 100644 --- a/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php +++ b/src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php @@ -97,7 +97,6 @@ use Symfony\Component\Translation\Translator; use Symfony\Component\Validator\ConstraintValidatorInterface; use Symfony\Component\Validator\ObjectInitializerInterface; -use Symfony\Component\Validator\Util\LegacyTranslatorProxy; use Symfony\Component\WebLink\HttpHeaderSerializer; use Symfony\Component\Workflow; use Symfony\Component\Workflow\WorkflowInterface; diff --git a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php index 62ccf05ecfe56..862786c9b8b80 100644 --- a/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php +++ b/src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php @@ -50,7 +50,6 @@ use Symfony\Component\Serializer\Serializer; use Symfony\Component\Translation\DependencyInjection\TranslatorPass; use Symfony\Component\Validator\DependencyInjection\AddConstraintValidatorsPass; -use Symfony\Component\Validator\Util\LegacyTranslatorProxy; use Symfony\Component\Workflow; abstract class FrameworkExtensionTest extends TestCase diff --git a/src/Symfony/Component/Validator/DependencyInjection/AddValidatorInitializersPass.php b/src/Symfony/Component/Validator/DependencyInjection/AddValidatorInitializersPass.php index ad5c25ce46962..284b93d19ed1c 100644 --- a/src/Symfony/Component/Validator/DependencyInjection/AddValidatorInitializersPass.php +++ b/src/Symfony/Component/Validator/DependencyInjection/AddValidatorInitializersPass.php @@ -16,7 +16,6 @@ use Symfony\Component\DependencyInjection\ContainerBuilder; use Symfony\Component\DependencyInjection\Definition; use Symfony\Component\DependencyInjection\Reference; -use Symfony\Component\Translation\TranslatorInterface as LegacyTranslatorInterface; use Symfony\Component\Validator\Util\LegacyTranslatorProxy; /** From 331e8cea72e6449e45f7646a8a2c383c4dc43248 Mon Sep 17 00:00:00 2001 From: Steve Nebes Date: Wed, 17 Apr 2019 23:16:42 -0500 Subject: [PATCH 9/9] FWB - Legacy translator check --- src/Symfony/Component/Validator/ValidatorBuilder.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Component/Validator/ValidatorBuilder.php b/src/Symfony/Component/Validator/ValidatorBuilder.php index fb643327125d5..0766a2e9f399a 100644 --- a/src/Symfony/Component/Validator/ValidatorBuilder.php +++ b/src/Symfony/Component/Validator/ValidatorBuilder.php @@ -258,7 +258,11 @@ public function setConstraintValidatorFactory(ConstraintValidatorFactoryInterfac */ public function setTranslator(LegacyTranslatorInterface $translator) { - $this->translator = $translator instanceof LegacyTranslatorProxy ? $translator->getTranslator() : $translator; + $this->translator = $translator; + + while ($this->translator instanceof LegacyTranslatorProxy) { + $this->translator = $this->translator->getTranslator(); + } return $this; }