2015-12-02 9 views
6

は、私は小さなスリム3アプリを持っている、と私はスリムな例外をスローしたときに、単に一般的なエラーメッセージを示しています。スリム3つのブラックホールのエラー

スリムアプリケーションエラー

ウェブサイトのエラーが発生しました。一時的な不便をおかけして申し訳ありません。

あなたはあなたのバックトレースなどを与えて、デバッグモードをオンにするには、このような何かを行うことができ、スリム2では

:スリム3では

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

1があるようには思えません。また、私の例外とエラーハンドラをオーバーライドしているようです。

がどのように私はエラーを吐き出すために、または少なくともソースを通じて探し

+0

あなたはどのバージョンのSlim 3を使用していますか? –

+0

'3.0.0-RC3' - でもRC2でこれをやっていた –

答えて

15

(出力はデバッグ情報のためKINTするパイプ)私のエラーハンドラを呼び出すためにスリム取得することができ、それはエラーでスリム3を初期化することが可能ですそのような表示:

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

が、私はそれが完全にerrorHandlerを交換せずに事実の後、この設定を変更することができますかはわかりません。

2

デフォルトの例外ハンドラで完全なスタックトレースを表示するには、j-vが言ったことを使用します。

あなたがスリムで例外を自分で処理したい場合は、それはあなたの「ないスリムで」エラーハンドラの前に使用されるように、あなたはスリムのデフォルトの例外ハンドラをオーバーライドする必要があります。

$app = new \Slim\App(); 

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

エラー処理は、むしろ十分に立証されて: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!'); 
     }; 
    }; 
関連する問題