Yii-error-handling
Yii-エラー処理
Yiiには組み込みのエラーハンドラが含まれています。 Yiiエラーハンドラは次のことを行います-
- 致命的でないすべてのPHPエラーをキャッチ可能な例外に変換します。
- すべてのエラーと例外を詳細なコールスタックとともに表示します。
- さまざまなエラー形式をサポートします。
- コントローラアクションを使用してエラーを表示することをサポートします。
エラーハンドラを無効にするには、エントリスクリプトでYII_ENABLE_ERROR_HANDLER定数をfalseに定義する必要があります。 エラーハンドラは、アプリケーションコンポーネントとして登録されます。
- ステップ1 *-次の方法で構成できます。
上記の構成では、表示されるソースコードの行数が10に設定されます。 エラーハンドラは、致命的でないすべてのPHPエラーをキャッチ可能な例外に変換します。
ステップ2 *- actionShowError()*という新しい関数をSiteControllerに追加します。
ステップ3 *-URL *http://localhost:8080/index.php?r = site/show-error に移動します。 警告メッセージが表示されます。
ユーザーにリクエストが無効であることを表示したい場合は、 yii \ web \ NotFoundHttpException をスローできます。
ステップ4 *- actionShowError()*関数を変更します。
ステップ5 *-アドレスバーにアドレス *http://localhost:8080/index.php?r = site/show-error を入力します。 次のHTTPエラーが表示されます。
YII_DEBUG定数がtrueの場合、エラーハンドラーは詳細な呼び出しスタックでエラーを表示します。 定数がfalseの場合、エラーメッセージのみが表示されます。 デフォルトでは、エラーハンドラはこれらのビューを使用してエラーを表示します-
- @yii/views/errorHandler/exception.php-コールスタック情報とともにエラーを表示する必要がある場合、ビューファイルが使用されます。
- @yii/views/errorHandler/error.php-呼び出しスタック情報なしでエラーを表示する必要がある場合に、ビューファイルが使用されます。
専用のエラーアクションを使用して、エラー表示をカスタマイズできます。
ステップ6 *- *config/web.php ファイルの errorHandler アプリケーションコンポーネントを変更します。
上記の構成は、呼び出しスタックなしでエラーを表示する必要がある場合、 site/error アクションが実行されることを定義しています。
ステップ7 *-SiteControllerの actions()*メソッドを変更します。
上記のコードは、*エラー*が発生すると、エラービューがレンダリングされることを定義しています。
ステップ8 *-views/siteディレクトリの下に *error.php というファイルを作成します。
ステップ9 *-アドレス *http://localhost:8080/index.php?r = site/show-error に移動すると、カスタマイズされたエラービューが表示されます。