2015-12-02 15 views
6

Ich habe eine kleine schlanke 3 app, und wenn ich eine Ausnahme schlank zeigt einfach die generische Fehlermeldung werfen:Schlanke 3 blackholing Fehler

Schlanke Anwendungsfehler

Eine Website Fehler aufgetreten ist. Entschuldigung für die vorübergehende Unannehmlichkeit.

In schlank 2 können Sie so etwas wie dies auf den Debug-Modus schalten Sie Backtraces usw. geben:

$app->config('debug', true); 

In slim 3 dort nicht zu sein scheint. Außerdem scheint es meine Ausnahme- und Fehlerbehandlungsroutinen zu überschreiben.

Wie kann ich schlank bekommen Fehler auszuspucken, oder zumindest meine Fehler-Handler zu nennen (wobei das Rohr die Ausgabe für Debug-Informationen Kint)

+0

Welche Version von Slim 3 verwenden Sie? –

+0

'3.0.0-RC3' - aber dies wurde auch mit RC2 gemacht –

Antwort

15

Blick durch die Quelle, ist es möglich, schlank 3 mit Fehler zu initialisieren anzeigen wie folgt:

$app = new \Slim\App(['settings' => ['displayErrorDetails' => true]]); 

ich bin mir nicht sicher, ob es möglich, diese Einstellung nach der Tatsache zu ändern, ohne die errorHandler gänzlich zu ersetzen.

2

Um die vollständige Stack-Trace auf Standard-Ausnahme-Handler anzuzeigen, verwenden Sie, was j-v sagte.

Wenn Sie Ausnahmen in Slim Griff selbst Sie dann müssen Slims Standard-Exception-Handler außer Kraft zu setzen, wie es vor Ihrer „nicht in Slim“ verwendet wird, Fehlerbehandlung:

$app = new \Slim\App(); 

$container = $app->getContainer(); 
$container['errorHandler'] = function(ServerRequestInterface $request, ResponseInterface $response, Exception $exception) { 
    //Handle exception here 
} 
1

Fehlerbehandlung ist ziemlich gut dokumentiert : http://www.slimframework.com/docs/handlers/error.html

$app = new \Slim\App(); 
$c = $app->getContainer(); 
$c['errorHandler'] = function ($c) { 
    return function ($request, $response, $exception) use ($c) { 
     return $c['response']->withStatus(500) 
           ->withHeader('Content-Type', 'text/html') 
           ->write('Something went wrong!'); 
     }; 
    };