2011-01-29 1 views
5

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

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

Это прекрасно работает, но именно этот сценарий занимает много времени, и во время исполнения я вторя сообщения о состоянии (эхо «сообщение о состоянии»;), но ни один из сообщения появляются до тех пор, пока скрипт не завершит выполнение.

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

Благодаря

ответ

8

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

это решить мою проблему, спасибо –

 Смежные вопросы

  • Нет связанных вопросов^_^