* * 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 */ 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'; } }