每次调用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