私はSilex 1.3に基づいてアプリを開発しています。これは私のSilexとの最初の出会いなので、私はあまりそれに精通していません。Silexでエラー/例外処理を無効にすることはできますか?
私は独自のエラー/例外ハンドラを使用したいと思います。これは、基本的には自身を登録し、すべてのエラー、致命的なエラー、キャッチされない例外をキャッチし、開発中のWhoops生産における優雅なハンドラ。
しかし、一度私はsilexコントローラ、ミドルウェアの中にいれば、何とかして、Silexが引き継ぎ、それ自身のエラー処理を使用します。 Silexはシャットダウンには至りませんが、他のすべてのものはSilexのデフォルトの「Something went wrong」ページに置き換えられているため、致命的なエラーが発生します。
$ app-> error()を使ってHOW Silexがエラーを処理することができますが、そこから元のErrorHandlerに戻す方法や、Silexのハンドルをオーバーライドする方法が見つかりませんでした。エラー。
私は、エラーハンドラを使用するようにSilexに指示する方法を知っていますか?$ app-> error()または他の方法を使用してください。b)Silexのエラー処理を完全に無効にするか、最後の手段は、Silexに致命的なエラーをキャッチさせて、$ app-> error()の中から3つのタイプすべてを扱うことができるのですか?
シレックスを初めて使用したので、より良い方法があれば、シレックスのエラー処理方法を教えてください。できれば質問にも答えてください。
いくつかのサンプルコード:
// This will register itself and then handle all errors.
$handler = new ErrorHandler();
// These are all handled appropriately.
nonexistentfunction(); // Correctly caught by ErrorHandler::handleFatalError
trigger_error("example"); // Correctly caught by ErrorHandler::handlePhpError
throw new \Exception("example"); // Correctly caught by ErrorHandler::handleException
$app = new \Silex\Application();
$app->get('/', function() use ($app) {
// This is still handled correctly.
nonexistentfunction(); // Correctly caught by ErrorHandler::handleFatalError
// However, these are now overridden by Silex.
trigger_error("example"); // INCORRECTLY DISPLAYS SILEX ERROR PAGE.
throw new \Exception("example"); // INCORRECTLY DISPLAYS SILEX ERROR PAGE.
});
$app->run();
と参照のための非常に単純化されたのErrorHandler:私は知っている https://github.com/whoops-php/silex-1
$ app ['exception_handler'] - > disable();ありがとう!それがまさに私が必要としていたものです。おかしい、あなたは私にそれを与えたので、私はAPIで見つけることができます。私は彼らの文書化が少しうまくいったと思う= o) – Eli