2011-01-29 15 views
5

私はKohana 3を使用していますが、私はKohana_Controllerを拡張するコントローラを持っています。 (エコー「ステータスメッセージを」;)のどれもKohana 3コマンドライン出力バッファリング?

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

それはうまく動作しますが、この特定のスクリプトは長い時間がかかり、実行中に、私はステータスメッセージをエコー午前:私は使用していない、コマンドラインから呼び出しますスクリプトは実行が完了するまで表示されます。

ステータスメッセージがエコーされているのを見たいのですが、どのようにすればいいか教えてください。

おかげ

答えて

8

それは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(); 
     } 
    } 
+0

これは、おかげで私の問題を解決しました –