Browse Source

[FrameworkBundle] removed the router.options.resource_type and routing.resource arguments

Fabien Potencier 14 năm trước cách đây
mục cha
commit
f05801cace

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

@@ -245,10 +245,13 @@ class FrameworkExtension extends Extension
     {
         $loader->load('routing.xml');
 
-        $container->setParameter('routing.resource', $config['resource']);
+        $router = $container->findDefinition('router.real');
+        $router->replaceArgument(1, $config['resource']);
 
         if (isset($config['type'])) {
-            $container->setParameter('router.options.resource_type', $config['type']);
+            $arguments = $router->getArguments();
+            $arguments[2]['resource_type'] = $config['type'];
+            $router->replaceArgument(2, $arguments[2]);
         }
 
         if ($config['cache_warmer']) {

+ 1 - 3
src/Symfony/Bundle/FrameworkBundle/Resources/config/routing.xml

@@ -21,7 +21,6 @@
         <parameter key="router.cache_warmer.class">Symfony\Bundle\FrameworkBundle\CacheWarmer\RouterCacheWarmer</parameter>
         <parameter key="router.options.matcher.cache_class">%kernel.name%%kernel.environment%UrlMatcher</parameter>
         <parameter key="router.options.generator.cache_class">%kernel.name%%kernel.environment%UrlGenerator</parameter>
-        <parameter key="router.options.resource_type" />
     </parameters>
 
     <services>
@@ -56,7 +55,7 @@
 
         <service id="router.real" class="%router.class%">
             <argument type="service" id="routing.loader" />
-            <argument>%routing.resource%</argument>
+            <argument /> <!-- routing resource -->
             <argument type="collection">
                 <argument key="cache_dir">%kernel.cache_dir%</argument>
                 <argument key="debug">%kernel.debug%</argument>
@@ -68,7 +67,6 @@
                 <argument key="matcher_base_class">%router.options.matcher_base_class%</argument>
                 <argument key="matcher_dumper_class">%router.options.matcher_dumper_class%</argument>
                 <argument key="matcher_cache_class">%router.options.matcher.cache_class%</argument>
-                <argument key="resource_type">%router.options.resource_type%</argument>
             </argument>
         </service>
 

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

@@ -52,8 +52,9 @@ abstract class FrameworkExtensionTest extends TestCase
         $container = $this->createContainerFromFile('full');
 
         $this->assertTrue($container->hasDefinition('router.real'), '->registerRouterConfiguration() loads routing.xml');
-        $this->assertEquals($container->getParameter('kernel.root_dir').'/config/routing.xml', $container->getParameter('routing.resource'), '->registerRouterConfiguration() sets routing resource');
-        $this->assertEquals('xml', $container->getParameter('router.options.resource_type'), '->registerRouterConfiguration() sets routing resource type');
+        $arguments = $container->getDefinition('router.real')->getArguments();
+        $this->assertEquals($container->getParameter('kernel.root_dir').'/config/routing.xml', $arguments[1], '->registerRouterConfiguration() sets routing resource');
+        $this->assertEquals('xml', $arguments[2]['resource_type'], '->registerRouterConfiguration() sets routing resource type');
         $this->assertTrue($container->getDefinition('router.cache_warmer')->hasTag('kernel.cache_warmer'), '->registerRouterConfiguration() tags router cache warmer if cache warming is set');
         $this->assertEquals('router.cached', (string) $container->getAlias('router'), '->registerRouterConfiguration() changes router alias to cached if cache warming is set');
     }