2011-01-29 13 views
5

Estoy usando Kohana 3 y tengo un controlador que amplía Kohana_Controller. Lo llamo desde la línea de comandos usando:Kohana 3 Buffer de salida de línea de comando?

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

Funciona muy bien, pero este script particular, lleva mucho tiempo y durante la ejecución estoy haciendo eco de los mensajes de estado ('mensaje de estado' eco;) pero ninguno de los los mensajes aparecen hasta después de que la secuencia de comandos haya terminado de ejecutarse.

Quiero ver los mensajes de estado a medida que se repiten, ¿alguien me puede decir cómo hacerlo?

Gracias

Respuesta

8

Parece que Kohana :: init() (probablemente llamada en su bootsrap) requiere un ob_start(). Esto significa que todo lo que sale después de ese punto está contenido en el buffer de salida. Para detener esto, en su método anterior en su Controlador agregue ob_end_flush() para generar cualquier cosa que ya se haya emitido y apague el buffer de salida. Cualquier eco que hagas después de eso debe emitirse inmediatamente.

Así que el código con el siguiente aspecto:

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

esto solucionó mi problema, gracias –

Cuestiones relacionadas