Кохана 3 Буферизация вывода командной строки?

Я использую Kohana 3, и у меня есть контроллер, который расширяет Kohana_Controller. Я вызываю это из командной строки, используя:

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

Он работает очень хорошо, но этот конкретный сценарий занимает много времени, и во время выполнения я повторяю сообщения о статусе (echo 'status message';), но ни одно из сообщений не появляется до тех пор, пока скрипт не завершит выполнение.

Я хочу видеть сообщения о статусе по мере их повторения, может ли кто-нибудь сказать мне, как это сделать?

благодаря

Solutions Collecting From Web of "Кохана 3 Буферизация вывода командной строки?"

Похоже, что Kohana :: init () (вероятно, вызванный в вашем bootsrap) вызывает ob_start() . Это означает, что все выходные данные после этой точки содержатся в выходном буфере. Чтобы остановить это, в вашем предыдущем методе в вашем контроллере добавьте 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(); } }