vendor/symfony/src/Symfony/Bundle/TwigBundle/Extension/ActionsExtension.php
changeset 0 7f95f8617b0b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/symfony/src/Symfony/Bundle/TwigBundle/Extension/ActionsExtension.php	Sat Sep 24 15:40:41 2011 +0200
@@ -0,0 +1,67 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Symfony\Bundle\TwigBundle\Extension;
+
+use Symfony\Bundle\TwigBundle\TokenParser\RenderTokenParser;
+use Symfony\Component\DependencyInjection\ContainerInterface;
+
+/**
+ * Twig extension for Symfony actions helper
+ *
+ * @author Fabien Potencier <fabien@symfony.com>
+ */
+class ActionsExtension extends \Twig_Extension
+{
+    private $container;
+
+    /**
+     * Constructor.
+     *
+     * @param ContainerInterface $container The service container
+     */
+    public function __construct(ContainerInterface $container)
+    {
+        $this->container = $container;
+    }
+
+    /**
+     * Returns the Response content for a given controller or URI.
+     *
+     * @param string $controller A controller name to execute (a string like BlogBundle:Post:index), or a relative URI
+     * @param array  $attributes An array of request attributes
+     * @param array  $options    An array of options
+     *
+     * @see Symfony\Bundle\FrameworkBundle\Controller\ControllerResolver::render()
+     */
+    public function renderAction($controller, array $attributes = array(), array $options = array())
+    {
+        return $this->container->get('templating.helper.actions')->render($controller, $attributes, $options);
+    }
+
+    /**
+     * Returns the token parser instance to add to the existing list.
+     *
+     * @return array An array of Twig_TokenParser instances
+     */
+    public function getTokenParsers()
+    {
+        return array(
+            // {% render 'BlogBundle:Post:list' with { 'limit': 2 }, { 'alt': 'BlogBundle:Post:error' } %}
+            new RenderTokenParser(),
+        );
+    }
+
+    public function getName()
+    {
+        return 'actions';
+    }
+}