将应该运行的代码放在哪里,并为每个路由设置一些变量


Where to put code which should run and set up some variables for every route?

每次调用URL或路由时,我都想运行一些会话处理代码,但我显然希望能够在任何我想要的控制器中访问这个会话变量。我认为这应该放在我包裹的前控制器里,这是错的吗?

我尝试将一些变量放在我的捆绑包的src的根的...Bundle.php文件中,放在DefaultController.php中(我创建了一个构造函数)等等。什么都不管用。

如何为每条路线运行一些代码并设置一些变量


注:

  • 我是MVC和Symfony2的新手
  • "每条路线"==我所说的捆绑包中的每个控制器

我建议将其作为内核事件侦听器来实现,并将会话注入其中

细化:

如果你看http://symfony.com/doc/current/cookbook/service_container/event_listener.html您将了解如何注册事件侦听器。

基本上,您可以使用此方法创建一个内核事件侦听器,该侦听器在每次系统启动时运行,还可以注入会话(yml中的@session)来执行您需要的操作。

查看内核事件kernel.requesthttp://symfony.com/doc/current/book/internals.html#events

如果您不熟悉事件,请查看http://symfony.com/doc/current/components/event_dispatcher/introduction.html