CakePHP2で独自のエラーを適用する

エラーハンドリングについてはCakePHP Cookbook v2.x documentationで調べる事ができるけど、

これだと、和訳がない+自分でも試してみるついでにメモを残しておく。

エラーの設定

独自エラーハンドラ―を用意する

app/Lib以下にAppError.phpというファイルを作成。
とりあえず既存のエラーハンドリングの機能を持ってくるためにこんな感じで記述。
ErrorHandlerクラスにはhandleErrorメソッドの他にも、handleExceptionとhandleFatailErrorメソッドがあるけど、2.のところで設定するのがhandleErrorになるのでこれだけを持ってくる。

<?php
App::uses ('ErrorHandler' , 'Error' );

class AppError extends ErrorHandler {
    public static function handleError($code, $description, $file = null, $line =null , $context = null) {
         echo ' 独自のhandleError <br />';
    }
}

2.Errorの設定を上書きする

app/Config/core.phpのエラー設定の部分を上書きする

Configure:: write('Error', array(
    'handler' => 'ErrorHandler::handleError' ,
    'level' => E_ALL & ~E_DEPRECATED,
    'trace' => true
));
Configure:: write('Error.handler', 'AppError::handleError');

3.作成したエラーハンドラークラスを呼び出す

app/Config/bootstrap.phpに以下を追記

App::uses('AppError' , 'Lib');

これでユーザー独自のエラー設定が完了。

例外の設定も基本的にはエラーの設定と同じようにできるのだが、例外の追加とかAppErrorの設定とかまだうまく残せる自信がないのでこっちはまた次回に。