日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

Zend Framework 入門——錯(cuò)誤處理_PHP教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:Zend Framework 入門——多國(guó)語言支持
如果你的項(xiàng)目想要支持多語言版本,那么就需要用到 Zend_Translate。Zend_Translate 的詳細(xì)文檔在這里,不過如果想偷懶的話,也很簡(jiǎn)單,在 View Helpers 文檔中介紹了如何用 Translate Helper

使用 Zend Framework 的 MVC 結(jié)構(gòu),如果不做特殊的處理,所有的異常都會(huì)被前端控制器捕獲,并累積起來。

Zend Framework 提供了若干種方法來處理異常。這里介紹最簡(jiǎn)單的一種。

在第一部分《快速上手》中,我們已經(jīng)有了一個(gè)很簡(jiǎn)單的錯(cuò)誤處理機(jī)制,即通過 applicatoin/controllers/ErrorController.php 以及其中定義的 errorAction 方法來處理異常。不過,只是給出了一個(gè)很簡(jiǎn)陋的報(bào)錯(cuò)信息�,F(xiàn)在,我們把它再完善一下,達(dá)到兩個(gè)基本要求:

  1. 用戶請(qǐng)求了不存在的控制器或動(dòng)作(404 錯(cuò)誤),在用戶的瀏覽器中給出報(bào)錯(cuò)信息;
  2. 其他的系統(tǒng)錯(cuò)誤,則在日志文件中記錄下來。

1. 創(chuàng)建日志

創(chuàng)建一個(gè)與 application 平行的文件夾,命名為 logs。

編輯 html/index.php 文件,加入下面的代碼:

require_once 'Zend/Log.php';
require_once 'Zend/Log/Writer/Stream.php';
$log = new Zend_Log(new Zend_Log_Writer_Stream($rootPath . '/logs/errors.log', 'a '));
Zend_Registry::set('error_log', $log);

注意:Web 服務(wù)器應(yīng)具有對(duì) logs 文件夾的讀寫權(quán)限。

2. 完善錯(cuò)誤處理代碼

編輯 application/controllers/ErrorController.php 文件,新的 errrorAction 方法為:

public function errorAction()
{
$log = Zend_Registry::get('error_log');
$content = null;
$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' ) ;
// ... get some output to display...
$content = "error_page_not_found"$$
break ;
default :
// application error; display error page, but don't change
// status code
$content = "error_unexpected"$$
// ...

// Log the exception
$exception = $errors->exception;

$log->debug($exception->getMessage() .
PHP_EOL . $exception->getTraceAsString());
break ;
}

// Clear previous content
$this->getResponse()->clearBody();
$this->view->content = $content;
}

在 languages/zh_cn.php 中加入錯(cuò)誤信息的中文條目(如果你不需要支持多國(guó)語言,那么可以忽略這些):

'error_page_not_found' => "<h1>404 錯(cuò)誤:頁面不存在!</h1>" . PHP_EOL .
'<p>對(duì)不起,您所要求的頁面不存在。</p>',
'error_unexpected' => '<h1>錯(cuò)誤!</h1>' . PHP_EOL .
'<p>對(duì)不起,系統(tǒng)無法響應(yīng)您的請(qǐng)求。請(qǐng)稍后再試。</p>',

最后,略微修改一下 application/views/error/error.phtml 文件:

其中的錯(cuò)誤顯示代碼為:

<?php echo $this->translate($this->content); ?>

注意:如果你需要記錄所有的異常和錯(cuò)誤,包括各種警告,可以參考這里。

相關(guān)文章

Zend Framework 入門——快速上手

Zend Framework 入門——多國(guó)語言支持

Zend Framework 入門——錯(cuò)誤處理

Zend Framework 入門——頁面布局

分享:Zend Framework 入門——快速上手
1. 安裝 從 Zend Framework 的網(wǎng)頁上下載最新版本。解壓后,把整個(gè)目錄拷貝到一個(gè)理想的地方,比如:/php/library/Zend。 打開 php.ini 文件,確認(rèn)包含 Zend 目錄的路徑在 include_path 里

來源:模板無憂//所屬分類:PHP教程/更新時(shí)間:2008-08-22
相關(guān)PHP教程