如何在 Symfony2 中打开输出缓冲?

发布于 2024-11-28 09:39:02 字数 165 浏览 0 评论 0原文

如何为 Sf2 应用程序的每个请求打开 output_buffering?

我需要它来使用 FirePHPBundle,但我更愿意在应用程序范围内使用它。

how do I turn on output_buffering for every request to my Sf2 app?

I need this to use the the FirePHPBundle, but I would prefer to have it application-wide.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

鱼窥荷 2024-12-05 09:39:02

执行此操作的一个好地方是在 AppKernel 的 init 方法中,框架还注册各种错误处理程序和调试标志:

class AppKernel extends Kernel
{
...
public function init() 
{
    parent::init(); //do not forget to call this    

    if ($this->debug) {
        ob_start(); 
    }
}
}

这当然只会在开发环境中调用 ob_start

您无需担心调用 ob_start 在这里,因为正如 php 手册所述:

输出缓冲区是可堆叠的,也就是说,您可以在另一个 ob_start() 处于活动状态时调用 ob_start()。只需确保调用 ob_end_flush() 适当的次数即可。如果多个输出回调函数处于活动状态,则输出将按嵌套顺序依次通过每个回调函数进行过滤。

A good place to do this is in AppKernel's init method where the framework also registers various error handlers and debug flags:

class AppKernel extends Kernel
{
...
public function init() 
{
    parent::init(); //do not forget to call this    

    if ($this->debug) {
        ob_start(); 
    }
}
}

This of course will call ob_start only in a development environment

You need not to worry about calling ob_start here because as the php manual states:

Output buffers are stackable, that is, you may call ob_start() while another ob_start() is active. Just make sure that you call ob_end_flush() the appropriate number of times. If multiple output callback functions are active, output is being filtered sequentially through each of them in nesting order.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文