Wie kann ich die Anzeige Ausnahme-trace in laravel console Befehl?

Bin ich mit Laravel 5.1 erstellen Sie eine Konsole-basierte Anwendung. Während der Entwicklung möchte ich die Anzeige der exception-trace, wenn ein Fehler Auftritt. Aber selbst wenn ich mit -v,- vv oder -vvv option in php artisan ich nicht bekommen, eine Ausnahme-trace für meine benutzerdefinierte Befehle. Ich APP_DEBUG=true in meinem .env noch keine Ausnahme-trace.

Ausgabe von php artisan some:unknowncommand ist:

[InvalidArgumentException]                              
There are no commands defined in the "some" namespace.

Ausgabe von php artisan -v some:unknowncommand ist:

[InvalidArgumentException]                              
  There are no commands defined in the "some" namespace.  

Exception trace:
 () at /Users/dirkpostma/Dropbox/Domains/dpepp/vendor/symfony/console/Application.php:501
 Symfony\Component\Console\Application->findNamespace() at /Users/dirkpostma/Dropbox/Domains/dpepp/vendor/symfony/console/Application.php:535
 Symfony\Component\Console\Application->find() at /Users/dirkpostma/Dropbox/Domains/dpepp/vendor/symfony/console/Application.php:192
 Symfony\Component\Console\Application->doRun() at /Users/dirkpostma/Dropbox/Domains/dpepp/vendor/symfony/console/Application.php:126
...

Nun habe ich eine sehr einfache Konsole mit dem Befehl dp genannt: - test, mit folgenden Griff-Funktion:

/**
 * Execute the console command.
 *
 * @return mixed
 */
public function handle()
{
    generate error here
}

Ausgabe von php artisan dp:test ist:

[Symfony\Component\Debug\Exception\FatalErrorException]
syntax error, unexpected 'error' (T_STRING)    

Ausgabe von php artisan -v dp:test ist die gleiche.
Ausgabe von php artisan -vvv dp:test ist die gleiche.

Die log-Datei zeigen, NICHT die Ausnahme-trace, also irgendwie sollte es möglich sein, zeigen Sie es in der cli. Ich weiß nicht einmal sehen, die mit dem Namen und linenumer wo tritt der Fehler auf... Wie kann ich dafür sorgen?

Vielen Dank im Voraus!

EDIT:

Ist über sein vergebliches bemühen bohrte ein bisschen weiter. Im Fall nutze ich diese in meinem Befehl:

public function handle()
{
    throw new \Exception("test exception");
}

ist und ich den Befehl php artisan -v dp:test die Fehler-trace ausgegeben. Die Spur wird nur nicht gedruckt, wenn die Ausnahme ausgelöst wird durch einen PHP-Fehler. In Illuminate/Foundation/Bootstrap/HandleExceptions.php Methode bootstrap PHP-Fehler konvertiert Ausnahmen. Wenn dies Auftritt, wird eine Ausnahme geworfen wird, aber das -v-wird irgendwie ignoriert beim drucken. Dies ist sehr unpraktisch, weil es macht Debuggen von CLI-apps schwer.

Ich denke, die Lösung kann gefunden werden in vendor/symfony/console/Application.php Methode renderException.

Ich werde weiter Graben später, es sei denn, jemand anderes zeigen können, die Lösung schneller als ich 🙂

InformationsquelleAutor Dirk | 2015-06-14
Schreibe einen Kommentar