Преглед изворни кода

Use an alias of translator.real instead of copying the definition

Copying the definition leads to 2 different services which the same
definition but different instances.
Christophe Coevoet пре 14 година
родитељ
комит
15c5d61af8

+ 2 - 1
src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php

@@ -421,7 +421,8 @@ class FrameworkExtension extends Extension
     {
         if (!empty($config['enabled'])) {
             // Use the "real" translator instead of the identity default
-            $container->setDefinition('translator', $translator = $container->findDefinition('translator.real'));
+            $container->setAlias('translator', 'translator.real');
+            $translator = $container->findDefinition('translator.real');
             $translator->addMethodCall('setFallbackLocale', array($config['fallback']));
 
             // Discover translation directories

+ 1 - 1
src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php

@@ -123,7 +123,7 @@ abstract class FrameworkExtensionTest extends TestCase
         $container = $this->createContainerFromFile('full');
 
         $this->assertTrue($container->hasDefinition('translator.real'), '->registerTranslatorConfiguration() loads translation.xml');
-        $this->assertSame($container->getDefinition('translator.real'), $container->getDefinition('translator'), '->registerTranslatorConfiguration() redefines translator service from identity to real translator');
+        $this->assertEquals('translator.real', (string) $container->getAlias('translator'), '->registerTranslatorConfiguration() redefines translator service from identity to real translator');
 
         $resources = array();
         foreach ($container->getDefinition('translator.real')->getMethodCalls() as $call) {