core
db
html
utility
ErrorHandlerStandard
クラス概要
ErrorHandlerStandardはエラー発生時の処理を定義します。
このクラスではエラーの種類によって二種類の処理が定義されています。
これはURLで指定されたコントローラーまたはアクションが存在しないエラーと、その他の例外エラーで、それぞれメソッド単位で処理が定義されています。
通常は意識する必要はありませんが、エラー時の処理をユーザーが定義したい場合は、このクラスを継承した"ErrorHandler"という名前のクラスを定義し、コントローラーディレクトリに配置することで実現可能です。
Exceptionクラスを継承した例外クラスを作成し、そのクラス名の末尾のExceptionを除去したものを、メソッドの命名規則に従って変換した名前のメソッドをErrorHandlerに定義することで、その例外の発生時に実行される例外捕捉メソッドとして実行されます。
例えばFileNotExistsExceptionという名前のExceptionクラスを継承したクラスを定義し、このインスタンスをthrowした場合、ErrorHandlerにfileNotExistsというメソッドが存在すれば、これが実行されます。ない場合はerrorメソッドが実行されます。
このクラスではエラーの種類によって二種類の処理が定義されています。
これはURLで指定されたコントローラーまたはアクションが存在しないエラーと、その他の例外エラーで、それぞれメソッド単位で処理が定義されています。
通常は意識する必要はありませんが、エラー時の処理をユーザーが定義したい場合は、このクラスを継承した"ErrorHandler"という名前のクラスを定義し、コントローラーディレクトリに配置することで実現可能です。
Exceptionクラスを継承した例外クラスを作成し、そのクラス名の末尾のExceptionを除去したものを、メソッドの命名規則に従って変換した名前のメソッドをErrorHandlerに定義することで、その例外の発生時に実行される例外捕捉メソッドとして実行されます。
例えばFileNotExistsExceptionという名前のExceptionクラスを継承したクラスを定義し、このインスタンスをthrowした場合、ErrorHandlerにfileNotExistsというメソッドが存在すれば、これが実行されます。ない場合はerrorメソッドが実行されます。
クラスファイル位置
curry/core/error_handler_standard.php
フィールド
| フィールド名 | アクセス | 型 | 概要 |
|---|---|---|---|
| $response | public | Response | Responseクラスのインスタンスを保持します。 ※バージョン1.1.0以降 |
| $request | protected | Request | リクエスト情報を格納するRequestクラスのインスタンスです。 コントローラークラスの$requestと同様に扱えます。 |
| $view | protected | ViewStandardまたはViewSmarty | ビュークラスのインスタンスです。 コントローラークラスの$viewと同様に扱えます。 |
| $exception | protected | ExceptionまたはExcetionの継承クラス | 例外発生時の例外インスタンス |
メソッド
| メソッド名 | アクセス | 概要 |
|---|---|---|
| error | public |
通常の例外発生時に呼び出されるメソッドです。 処理内容としては、error/error.php(tpl)のテンプレートを出力します。 任意の処理を行いたい場合はこのクラスを継承したErrorHandlerクラスで同名メソッドを定義します。 ちなみに通常の例外とは、このクラスの他のどのメソッドでも捕まらない例外です。通常のExceptionクラスのインスタンスとして投げられた例外は全てここに入ります。 |
| notFound | public |
通常の例外発生時に呼び出されるメソッドです。 引数の指定により、HTTPレスポンスのステータスコードとして200を返すか404を返すかが変わります。 任意の処理を行いたい場合はこのクラスを継承したErrorHandlerクラスで同名メソッドを定義します。 |
| pdo | public |
PDOException発生時に実行されるメソッドです。データベースエラーの場合に実行されます。 処理内容はerrorメソッドと同様ですが、任意の処理を行いたい場合はこのクラスを継承したErrorHandlerクラスで同名メソッドを定義します。 |
| redirect | public | サイト内の他のページへリダイレクトします。このメソッドでは他のドメインのサイトへのリダイレクトはできません。Controllerクラスのredirectメソッドと同様のメソッドです。 |
| enableLogging | public |
引数でログキーを指定することで、全SQL実行履歴をログへ出力することができます。 ログキーは、Logger::setLogNameメソッドの第二引数で指定した、ログファイルに対するログキーです。指定したキーに対応するログファイルへSQL実行履歴が出力されます。 |