我正在使用Kohana 3,我有一个扩展Kohana_Controller的控制器。我使用以下命令从命令行调用它:
php /path/to//index.php --uri="url/path"
它运行得很好,但是这个特定的脚本需要很长时间,在执行期间我会回显状态消息(echo'status message';)但是在脚本完成执行之后才会显示任何消息。
我希望看到状态消息,因为它们被回应,有人能告诉我该怎么做吗?
由于
答案 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();
}
}