如何在Symfony2中将控制器变量传递给EventListener?

如何在Symfony2中将控制器变量传递给EventListener?,symfony,twig,event-listener,Symfony,Twig,Event Listener,我厌倦了在Symfony2中的每个动作结束时写下这句话: return $this->render('Project:Bundle:view.twig', array( 'foo' => 1, 'bar' => 2 )); 因此,我尝试在一个操作运行之后连接到请求生

我厌倦了在Symfony2中的每个动作结束时写下这句话:

return $this->render('Project:Bundle:view.twig', array(
                                     'foo' => 1,
                                     'bar' => 2
                                 ));
因此,我尝试在一个操作运行之后连接到请求生命周期中,以节省一些输入。我希望能够在控制器中执行类似的操作:

$this->params = array(
    'foo' => 1,
    'bar' => 2
);
然后,侦听器将参数传递给渲染,并使用操作名称自动检测模板。我意识到我需要使用事件侦听器来实现这一点,但我似乎无法在正确的时间连接到生命周期中

  • kernel.controller很好,因为我可以获取控制器,但它是在操作运行之前,所以不会设置$this->params
  • kernel.response是在操作运行之后,但我似乎无法从这里获得控制器本身

仅供参考-我有Zend背景,这是我第一次使用Symfony2。。。如果我以完全错误的方式处理这个问题,那么大声喊叫

如果您使用的是SensioFrameworkExtraBundle,则可以使用
@Template()
注释并返回数组:

<?php

namespace Acme\FooBundle\Controller;

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;

class BarController
{
    /**
     * @Template()
     */
    public function bazAction()
    {
        return array(
            'some_value' => $someValue;
        );
    }
}

如果这不是我想要的!谢谢