CakePHP>エラーハンドリング(Error Handling)

CakePHPのマニュアルに、この章の日本語ドキュメントが無かったので、検証しながら意訳。

ErrorHandlingの基本

処理を中断して、エラーページを利用者に表示する共通機能が備わっている。
「controller」「component」上で利用可能。

・エラーハンドリングのための基本的な形式

<?php
$this->cakeError(<string errorType>, [array parameters]);
?>
定義済みのエラータイプ

cake/console/error.php
いくつかの便利なエラータイプはデフォルトで定義済み

・サンプル:404エラー

<?php
$this->cakeError('error404');  // パラメーターが不要なエラータイプもある
$this->cakeError('error404', array('url' => 'some/other.url'));
?>
カスタムErrorType

app/app_error.php
上記ファイル新設 → メソッドを定義する(=カスタムエラータイプを定義)

エラータイプが様々なファイルに分散してしまうのはよろしくない
→なので、1つのファイルに定義できるようにしたよ とのこと。

<?php
class AppError extends ErrorHandler {
  function testErrorCase($params) {
    $this->controller->set('message', $params['message']);
    $this->__outputMessage('test_error_case');
  }
}
?>
Viewファイル

作成場所は
app/views/errors/XXXXXXXX.ctp

ファイル名は自由に設定してよい。
カスタムエラーメソッド内の

<?php
$this->__outputMessage()
?>

の指定により、指定のViewファイルを表示させられる



処理を途中で中断できるメカニズムって素敵ですね。
というわけですこぶる便利なCakePHPでした。