如何在Symfony中的操作之外访问Request对象

时间:2011-11-16 04:34:38

标签: php symfony1

我希望能够访问存储在请求对象中的数据,但是我不在操作中。

有没有办法获取这些数据?

1 个答案:

答案 0 :(得分:3)

这完全取决于你所在的层。

如果您在视图中(模板,部分),则会自动填充一个名为$sf_request的变量。

如果你在其他地方,你可以通过上下文单身人士获得它:sfContext::getInstance()->getRequest()。这个问题是,如果由于某种原因没有创建上下文,那么它将成为一个问题。您可以使用sfContext::hasInstance()进行检查,但如果没有上下文,那么您显然无法以此方式获取请求。

您还可以使用context.load_factories上的侦听器将请求实例注入您需要的任何图层/对象中。但是,这又要求您在其中使用它的层在触发该事件之后这样做(例如,已经初始化了上下文)。

基本上我在这里得到的是,真的有理由在控制器之外访问请求: - )