- 2008-04-03 (木) 7:00
- 全般
intro
Zend Frameworkマニュアルに記述のあるエラー処理について紹介します(7.10.5.2節参照)。ソースコードはこちらからダウンロードできます。
1.コントローラの作成
以下のように
application/constorllers/ErrorController.phpファイルを作成します。
<?php class ErrorController extends Zend_Controller_Action { public function errorAction() { $errors = $this->_getParam('error_handler'); switch ($errors->type) { case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_CONTROLLER: case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ACTION: // 404 error -- controller or action not found $this->getResponse()->setRawHeader('HTTP/1.1 404 Not Found'); $this->view->title = '404 Not Found'; $this->view->message = '該当するページは見つかりませんでした。'; break; default: // application error // log error //require_once 'Zend/Log.php'; //require_once 'Zend/Log/Writer/Stream.php'; //$stream = new Zend_Log_Writer_Stream('/path/to/logfile'); //$logger = new Zend_Log($stream); //$exception = $errors->exception; //$logger->err($exception->getMessage() // . "\n" . $exception->getTraceAsString()); $this->view->title = 'エラー'; $this->view->message = 'アプリケーションエラーが発生しました。'; break; } // Clear previous content $this->getResponse()->clearBody(); } }
以下のようにapplication/constorllers/IndexController.phpファイルを作成します。
<?php require_once 'Zend/Controller/Action.php'; require_once 'Zend/Exception.php'; class IndexController extends Zend_Controller_Action { public function indexAction() { throw new Zend_Exception('some error occured...'); } }
2.ビューの作成
以下のように
application/views/scripts/error/error.phtmlファイルを作成します。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title><?=$this->translate($this->title)?></title> </head> <body> <h1><?=$this->translate($this->title)?></h1> <?=$this->translate($this->message)?> </body> </html>
3.確認
Webサーバにアクセスし(例:http://localhost/)、エラー画面を確認してください。Errorコントローラでログファイルを出力するようにした場合にはログファイルも確認してみてください。
履歴
| 日付 | 内容 |
|---|---|
| 2008/4/3 | 公開 |
| 2008/4/15 | メッセージ内容変更(404エラー表示対応) |
- Newer: Zend_Formの使用(i18n)
- Older: Zend_Formの使用
Comments:1
- oplabo 08-04-15 (火) 12:55
-
404エラーメッセージが正しく表示されていなかったバグを修正しました。
Trackbacks:0
- Trackback URL for this entry
- http://www.oplabo.jp/article/9/trackback
- Listed below are links to weblogs that reference
- Zend Frameworkのエラー処理 from Open Programming Laboratory