PHP MVC框架之錯誤捕捉入門教程
來源:程序員人生 發布時間:2014-06-02 14:46:29 閱讀次數:3666次
以前有講過關于php mvc的各種用法,本文章主要介紹PHP MVC框架之錯誤捕捉用法說明,各位同學可參考.前三篇文章已經把MVC的結構原理都簡單的進行了說明和演示...當然,不是說一個框架就只有那點東西,一個良好的框架所要求的功能還是要很全面的,例如友好的錯誤輸出,安全處理,防止跨域攻擊等.
好了,我們一步一步來.這節要說的是錯誤捕捉,其實這個不難,只要理解2個方法就可以做好錯誤捕捉的程序.
實例代碼如下:
- register_shutdown_function(‘functionname’);
- set_error_handler(‘functionname’);
第一個方法,是注冊一個shutdown的回調函數,當php腳本關閉時調用,當然這個關閉可以是正常的代碼執行完畢,也可以是程序拋出致命錯誤關閉的腳本,那我怎么區分呢?別急,php還有一個方法叫error_get_last() 就像函數名說的那樣,獲取php最后一個錯誤信息,這樣就可以判斷是代碼正常執行完畢還是遇到fatal error...
第二個方法,是注冊一個error的回調函數,當腳本執行遇到錯誤時調用.這2個方法最大的區別是,第一個是腳本關閉調用,也就是1次訪問,只會調用一次(因為發生致命錯誤腳本就退出執行了),二第二個方法的觸發調用是發生錯誤的時候,例如訪問數組中不存在的index,使用未定義的變量,就是這些warning,notice錯誤的捕捉...如果你想更了解二者的區別,建議訪問php官網查看文檔說明...這里我就不貼代碼了,有興趣的同學,可以去github那里下回來慢慢看...
實例代碼如下:
- <?php
- # 定義application路徑
- define('APPPATH', trim(__DIR__,'/'));
- # 獲得請求地址
- $root = $_SERVER['SCRIPT_NAME'];
- $request = $_SERVER['REQUEST_URI'];
- $URI = array();
- # 獲得index.php 后面的地址
- $url = trim(str_replace($root, '', $request), '/');
-
- # 如果為空,則是訪問根地址
- if (emptyempty($url))
- {
- # 默認控制器和默認方法
- $class = 'Index';
- $func = 'welcome';
- }
- else
- {
- $URI = explode('/', $url);
-
-
- # 如果function為空 則默認訪問index
- if (count($URI) < 2)
- {
- $class = ucfirst($URI[0]);
- $func = 'index';
- }
- else
- {
- $class = ucfirst($URI[0]);
- $func = $URI[1];
- }
- }
-
- # 把class加載進來
- include(APPPATH . '/' . 'application/controllers/' . $class . '.php');
-
-
- #實例化
- $obj = new $class;
-
-
- call_user_func_array(
- # 調用內部function
- array($obj,$func),
- # 傳遞參數
- array_slice($URI, 2)
- );
我們來看看最終的效果...我們來試試訪問不存在的controller里的方法試試先看看沒有錯誤捕捉的時候:再來對比下做了錯誤捕捉的時候.
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈