Zend Framework 入門——錯(cuò)誤處理_PHP教程
推薦: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è)基本要求:
- 用戶請(qǐng)求了不存在的控制器或動(dòng)作(404 錯(cuò)誤),在用戶的瀏覽器中給出報(bào)錯(cuò)信息;
- 其他的系統(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() |
在 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 里
- PHPNOW安裝Memcached擴(kuò)展方法詳解
- php記錄頁面代碼執(zhí)行時(shí)間
- PHP中獎(jiǎng)概率的抽獎(jiǎng)算法程序代碼
- apache設(shè)置靜態(tài)文件緩存方法介紹
- php對(duì)圖像的各種處理函數(shù)代碼小結(jié)
- PHP 關(guān)于訪問控制的和運(yùn)算符優(yōu)先級(jí)介紹
- 關(guān)于PHP語言構(gòu)造器介紹
- php/js獲取客戶端mac地址的實(shí)現(xiàn)代碼
- php5.5新數(shù)組函數(shù)array_column使用
- PHP preg_match的匹配多國(guó)語言的技巧
- php 中序列化和json使用介紹
- php采集文章中的圖片獲取替換到本地
PHP教程Rss訂閱編程教程搜索
PHP教程推薦
- CI鏈接操作多個(gè)數(shù)據(jù)庫
- 淺談PHP企業(yè)級(jí)應(yīng)用之WebService
- PHP程序級(jí)守護(hù)進(jìn)程的實(shí)現(xiàn)與優(yōu)化的使用概述
- php實(shí)現(xiàn)單鏈表的實(shí)例代碼
- 學(xué)習(xí)PHP:PHP的通用檢測(cè)函數(shù)總結(jié)
- PHP中上傳大體積文件時(shí)需要的設(shè)置
- php實(shí)現(xiàn)gb2312和unicode間編碼轉(zhuǎn)換
- 服務(wù)器變量 $_SERVER 的深入解析
- Linux操作系統(tǒng)啟動(dòng)httpd失敗的解決方法
- AJAX在PHP中的簡(jiǎn)單使用
- 相關(guān)鏈接:
- 教程說明:
PHP教程-Zend Framework 入門——錯(cuò)誤處理
。