2011-01-29 12 views
5

Używam Kohana 3 i mam kontroler, który rozszerza Kohana_Controller. Ja nazywam go z linii poleceń za pomocą:Kohana 3 Buforowanie wyjścia linii poleceń?

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

To działa dobrze, ale ten konkretny skrypt zajmuje dużo czasu, a podczas wykonywania jestem echem komunikaty o stanie (echo „komunikat o stanie”;) ale żadna z komunikaty pojawiają się do momentu zakończenia wykonywania skryptu.

Chcę zobaczyć komunikaty o stanie, ponieważ są one echo, czy ktoś może mi powiedzieć, jak to zrobić?

Dzięki

Odpowiedz

8

Wygląda Kohana :: init() (prawdopodobnie o nazwie w bootsrap) wzywa ob_start(). Oznacza to, że wszystko wyprowadzane po tym punkcie jest zawarte w buforze wyjściowym. Aby to zatrzymać, w swojej poprzedniej metodzie w kontrolerze dodaj ob_end_flush(), aby wyprowadzić wszystko, co mogło już być wydrukowane i wyłączyć buforowanie wyjściowe. Wszelkie echo, które następnie tworzysz, powinno być natychmiast wyprowadzane.

Więc kod z wyglądałby następująco:

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

to rozwiązać mój problem, dzięki –