Kohana 3命令行输出缓冲?

时间:2011-01-29 22:04:53

标签: php kohana kohana-3

我正在使用Kohana 3,我有一个扩展Kohana_Controller的控制器。我使用以下命令从命令行调用它:

php /path/to//index.php --uri="url/path"

它运行得很好,但是这个特定的脚本需要很长时间,在执行期间我会回显状态消息(echo'status message';)但是在脚本完成执行之后才会显示任何消息。

我希望看到状态消息,因为它们被回应,有人能告诉我该怎么做吗?

由于

1 个答案:

答案 0 :(得分:8)

看起来像Kohana :: init()(可能在你的bootsrap中调用)调用ob_start()。这意味着在该点之后输出的所有内容都包含在输出缓冲区中。要停止此操作,请在Controller中的before方法中添加ob_end_flush()以输出可能已输出的任何内容并关闭输出缓冲。之后你所做的任何回声都应立即输出。

所以你的代码看起来像:

  Controller_CLI extends Controller {
       public function before() {
              // empty the output buffre
              ob_end_flush();

              // call parent before() just incase there's anything 
              // in the parent before that you need/want to execute
              parent::before();
       }
  }