0

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

我尝试将一些变量放在...Bundle.php我的 bundle 根目录的文件中src,在DefaultController.php(我创建了一个构造函数)等等。没有任何效果。

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


笔记:

  • 我是 MVC 和 Symfony2 的新手。
  • “每条路线” == 我正在谈论的捆绑包中的每个控制器
4

2 回答 2

3

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

阐述:

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

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

于 2012-09-06T13:45:30.030 回答
0

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

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

于 2012-09-06T13:46:18.100 回答