国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

PHP MVC框架之錯誤捕捉入門教程

2024-05-04 21:57:30
字體:
來源:轉載
供稿:網友

以前有講過關于php mvc的各種用法,本文章主要介紹PHP MVC框架之錯誤捕捉用法說明,各位同學可參考.前三篇文章已經把MVC的結構原理都簡單的進行了說明和演示...當然,不是說一個框架就只有那點東西,一個良好的框架所要求的功能還是要很全面的,例如友好的錯誤輸出,安全處理,防止跨域攻擊等.

好了,我們一步一步來.這節要說的是錯誤捕捉,其實這個不難,只要理解2個方法就可以做好錯誤捕捉的程序.

實例代碼如下:

  1. register_shutdown_function(‘functionname’);    
  2. set_error_handler(‘functionname’);  

第一個方法,是注冊一個shutdown的回調函數,當php腳本關閉時調用,當然這個關閉可以是正常的代碼執行完畢,也可以是程序拋出致命錯誤關閉的腳本,那我怎么區分呢?別急,php還有一個方法叫error_get_last() 就像函數名說的那樣,獲取php最后一個錯誤信息,這樣就可以判斷是代碼正常執行完畢還是遇到fatal error...

第二個方法,是注冊一個error的回調函數,當腳本執行遇到錯誤時調用.這2個方法最大的區別是,第一個是腳本關閉調用,也就是1次訪問,只會調用一次(因為發生致命錯誤腳本就退出執行了),二第二個方法的觸發調用是發生錯誤的時候,例如訪問數組中不存在的index,使用未定義的變量,就是這些warning,notice錯誤的捕捉...如果你想更了解二者的區別,建議訪問php官網查看文檔說明...這里我就不貼代碼了,有興趣的同學,可以去github那里下回來慢慢看...

實例代碼如下:

  1. <?php 
  2. # 定義application路徑 
  3. define('APPPATH', trim(__DIR__,'/')); 
  4. # 獲得請求地址 
  5. $root = $_SERVER['SCRIPT_NAME']; 
  6. $request = $_SERVER['REQUEST_URI']; 
  7. $URI = array(); 
  8. # 獲得index.php 后面的地址 
  9. $url = trim(str_replace($root''$request), '/'); 
  10.  
  11. # 如果為空,則是訪問根地址 
  12. if (emptyempty($url)) 
  13.     # 默認控制器和默認方法 
  14.     $class = 'Index'
  15.     $func = 'welcome'
  16. else 
  17.     $URI = explode('/'$url); 
  18.  
  19.  
  20.     # 如果function為空 則默認訪問index 
  21.     if (count($URI) < 2) 
  22.     { 
  23.         $class = ucfirst($URI[0]); 
  24.         $func = 'index'
  25.     } 
  26.     else 
  27.     { 
  28.         $class = ucfirst($URI[0]); 
  29.         $func = $URI[1]; 
  30.     } 
  31.  
  32. # 把class加載進來 
  33. include(APPPATH . '/' . 'application/controllers/' . $class . '.php'); 
  34.  
  35.  
  36. #實例化 
  37. $obj = new $class
  38.  
  39.  
  40. call_user_func_array( 
  41.     # 調用內部function 
  42.     array($obj,$func), 
  43.     # 傳遞參數 
  44.     array_slice($URI, 2) 
  45. ); 

我們來看看最終的效果...我們來試試訪問不存在的controller里的方法試試先看看沒有錯誤捕捉的時候:再來對比下做了錯誤捕捉的時候.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 霍邱县| 和平县| 客服| 靖边县| 武义县| 五大连池市| 神木县| 巴东县| 朝阳县| 民丰县| 开平市| 河北省| 吉首市| 湟中县| 太仓市| 卫辉市| 桑植县| 永康市| 虎林市| 肥东县| 浙江省| 冕宁县| 德钦县| 双柏县| 沅江市| 五寨县| 白河县| 普安县| 邛崃市| 湖州市| 山丹县| 上栗县| 阳原县| 汉寿县| 手游| 峨边| 共和县| 陆丰市| 中山市| 东海县| 富川|