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

Php 在哪里放置应该运行的代码,并为每个路由设置一些变量?,php,symfony,controller,symfony-2.1,Php,Symfony,Controller,Symfony 2.1,我想在每次调用URL或路由时运行一些会话处理代码,但我显然希望能够在任何我希望的控制器中访问此会话变量。我认为这应该放在捆绑包的前端控制器中,这是错误的吗 我试着将一些变量放入…Bundle.php文件中,该文件位于我的Bundle的src根目录下,在DefaultController.php中(我创建了一个构造函数)等等。什么都不管用 如何运行一些代码并为每个路由设置一些变量? 注: 我是MVC和Symfony2的新手 “每条路线”==我所说的捆绑包中的每个控制器 我建议将其实现为内核事件

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

我试着将一些变量放入
…Bundle.php
文件中,该文件位于我的Bundle的
src
根目录下,在
DefaultController.php
中(我创建了一个构造函数)等等。什么都不管用

如何运行一些代码并为每个路由设置一些变量?
注:

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

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

详细说明:

如果您查看,您将看到如何注册事件侦听器


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

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

详细说明:

如果您查看,您将看到如何注册事件侦听器


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

查看kernel event kernel.request


如果您不熟悉事件,请查看内核事件kernel.request


如果您不熟悉访客的事件查看

,我必须在
config.yml
中我的服务定义中的
行之后添加一行
参数:[@session]
(请参见答案中的链接),并为我的侦听器创建一个构造函数,它将
会话
对象作为参数,但不执行任何操作。然后在我的
onKernelRequest
方法中,我设置了会话,并可以在那里操作它。然后可以在控制器中引用它;e、 g.如果我在
onKernelRequest
中设置会话变量,比如
$session->set('a','b')
然后它就可以访问了,比如
$this->get('session')->get('a')
对于访问者,我必须在
config.yml
中我的服务定义中的
行之后添加一行
参数:[@session]
(参见答案中的链接),并为我的侦听器创建一个构造函数,它将
会话
对象作为参数,但不执行任何操作。然后在我的
onKernelRequest
方法中,我设置了会话,并可以在那里操作它。然后可以在控制器中引用它;e、 g.如果我在
onKernelRequest
中设置会话变量,比如
$session->set('a','b')然后它可以像
$this->get('session')->get('a')