2015-02-22 8 views
7

Ho provato il metodo described here ma questo non funziona sulla mia installazione di Laravel 5.Come salvare/reindirizzare l'output da Laravel 5 Comando Artisan?

use Symfony\Component\Console\Output\BufferedOutput; 

Route::get('/test', function() 
{ 
    $output = new BufferedOutput; 

    Artisan::call('testCommand', array(), $output); 

    return $output->fetch(); 
}); 

Il mio comando;

public function fire() 
{ 
    $this->info('No output visible'); 
} 

Qualche suggerimento cosa potrei fare di sbagliato? O è qualcosa che è cambiato in Laravel 5?

risposta

4

sono riuscito a farlo funzionare con Artisan::output(), che restituisce l'uscita dell'ultimo comando.

Route::get('/test', function() 
{  
    Artisan::call('testCommand', array()); 

    return Artisan::output(); 
}); 

dovrebbe farlo per voi.

0

Ho avuto lo stesso problema, sostituendo BufferedOutput con PHP oldschool ha reso il lavoro per me, forse funziona anche per voi:

Route::get('/test', function() 
{ 
    ob_start(); 
    Artisan::call('testCommand'); 
    $output = ob_get_clean(); 
    return $output; 
}); 
+1

Non funziona per me. Sto usando la shell dei comandi e PHPUnit e l'output $ è sempre vuoto. – Marc

0

Se si lavora fuori dalla linea di comando, allora è possibile reindirizzare tramite il comando tee per scrivere su un file e stdout allo stesso tempo.

php artisan <command> | tee <filename>

1

ho fatto questo

php artisan your:command >> output.txt

funzionato bene per me.