Browse Source

[TwigBundle] Change the dependency of ActionsExtension to the actions helper

The logical of moving $attributes to a value of $options is already present
in the PHP templating helper.
alexandresalome 14 năm trước cách đây
mục cha
commit
73bd9c72af

+ 11 - 8
src/Symfony/Bundle/TwigBundle/Extension/ActionsExtension.php

@@ -12,7 +12,7 @@
 namespace Symfony\Bundle\TwigBundle\Extension;
 
 use Symfony\Bundle\TwigBundle\TokenParser\RenderTokenParser;
-use Symfony\Component\HttpKernel\HttpKernel;
+use Symfony\Bundle\FrameworkBundle\Templating\Helper\ActionsHelper;
 
 /**
  * Twig extension for Symfony actions helper
@@ -23,13 +23,18 @@ use Symfony\Component\HttpKernel\HttpKernel;
 class ActionsExtension extends \Twig_Extension
 {
     /**
-     * @var Symfony\Component\HttpKernel\HttpKernel
+     * @var Symfony\Bundle\FrameworkBundle\Templating\Helper\ActionsHelper
      */
-    private $kernel;
+    private $helper;
 
-    public function __construct(HttpKernel $kernel)
+    /**
+     * Construct the extension with a HTTP Kernel
+     *
+     * @param HttpKernel $kernel The kernel to use for sub-requests
+     */
+    public function __construct(ActionsHelper $helper)
     {
-        $this->kernel = $kernel;
+        $this->helper = $helper;
     }
 
     /**
@@ -43,9 +48,7 @@ class ActionsExtension extends \Twig_Extension
      */
     public function renderAction($controller, array $attributes = array(), array $options = array())
     {
-        $options['attributes'] = $attributes;
-
-        return $this->kernel->render($controller, $options);
+        return $this->helper->render($controller, $attributes, $options);
     }
 
     /**

+ 1 - 1
src/Symfony/Bundle/TwigBundle/Resources/config/twig.xml

@@ -45,7 +45,7 @@
 
         <service id="twig.extension.actions" class="Symfony\Bundle\TwigBundle\Extension\ActionsExtension" public="false">
             <tag name="twig.extension" />
-            <argument type="service" id="http_kernel" />
+            <argument type="service" id="templating.helper.actions" />
         </service>
 
         <service id="twig.extension.routing" class="Symfony\Bridge\Twig\Extension\RoutingExtension" public="false">