2011-01-29 12 views
5

Sto usando Kohana 3 e ho un controller che estende Kohana_Controller. Io lo chiamo dalla riga di comando utilizzando:Kohana 3 Buffering dell'output della riga di comando?

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

funziona bene, ma questo particolare script richiede molto tempo e durante l'esecuzione sto riecheggiando i messaggi di stato (echo 'messaggio di stato';), ma nessuno dei i messaggi vengono visualizzati fino a quando lo script non ha completato l'esecuzione.

Voglio vedere i messaggi di stato come sono echeggiati, qualcuno può dirmi come farlo?

Grazie

risposta

8

Sembra Kohana :: init() (probabilmente chiamato nella tua bootsrap) chiama un ob_start(). Ciò significa che tutto ciò che viene emesso dopo quel punto è contenuto nel buffer di output. Per interrompere questo, nel tuo metodo precedente nel tuo Controller aggiungi ob_end_flush() per produrre tutto ciò che può essere già stato prodotto e disattivare il buffering dell'output. Qualsiasi eco che produci dopo dovrebbe essere emesso immediatamente.

Così il vostro codice con sguardo come:

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

questo risolto il mio problema, grazie –

Problemi correlati