• []
  • []
  •  
  • del.icio.us 
  •  
  • Yahoo!֥åޡϿ 

yii エラー処理

PHP 求人 募集 Symfony CakePHP Smarty Ruby on Rails

yii エラー処理 概要

Yiiではデフォルトのエラー処理はSite Controllerのerrorアクションが担当する。
/protected/controller/SiteController.php
記述を調整すればステータスコードに応じたエラー文を作成することも簡単に出来る。
また、エラーハンドラー自体を変更することも可能で、
独自に用意したエラー処理群を利用するにはそちらのほうがいいだろう。

yii エラー処理 詳細

yii エラー処理 デフォルト

/protected/controller/SiteController.php

<?php
class SiteController extends Controller
{
 
// ~~~~~~ 略 ~~~~~~~~
 
/**
 * This is the action to handle external exceptions.
 */
public function actionError()
{
    if($error=Yii::app()->errorHandler->error)
    {
        if(Yii::app()->request->isAjaxRequest)
            echo $error['message'];
        else
            $this->render('error', $error);
    }
}
}

yii エラー処理 errorオブジェクト

上記$errorはCErrorHandlerというオブジェクトのerrorプロパティで、
各種エラー内容が格納された配列である。

code: HTTPステータスコード (例: 403, 500);
type: エラータイプ (例: CHttpException, PHP Error);
message: エラーメッセージ
file: エラーの起きたPHPスクリプトファイル名
line: エラーの起きた行番号
trace: エラーのコールスタック
source: エラーの起きたソースコード

エラーコードに併せたビューの指定やログの出力などを制御するのに利用する。

yii エラー処理 備考

エラー処理をするアクションをnullにするとなにやら自動的に色々やってくれるみたいだが正直良くわかっていない。
出力の際のステータスコードがちょっと変なので、自力で処理する必要がありそうだ。

HTTP/1.0 404 CHttpException

framework/yii/error.txt · 最終更新: 2011/02/08 16:16 by dozo