Я использую Kohana 3, и у меня есть контроллер, который расширяет Kohana_Controller. Я вызываю это из командной строки, используя:
php /path/to//index.php --uri="url/path"
Он работает очень хорошо, но этот конкретный сценарий занимает много времени, и во время выполнения я повторяю сообщения о статусе (echo 'status message';), но ни одно из сообщений не появляется до тех пор, пока скрипт не завершит выполнение.
Я хочу видеть сообщения о статусе по мере их повторения, может ли кто-нибудь сказать мне, как это сделать?
благодаря
Похоже, что 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(); } }