日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > PHP MVC框架路由學習筆記

PHP MVC框架路由學習筆記

來源:程序員人生   發布時間:2013-12-14 16:20:32 閱讀次數:3931次

文章主要講到了關于PHP MVC框架路由使用方法,有需要了解的同學可進入參考.說到PHP開發web,自然離不開開發框架,開發框架為我們提供了靈活的開發方式,MVC層分離,業務解耦等...

第一篇先來簡單點的,說說MVC框架的路由功能...

一般的單入口框架路由都是這樣的結構:

domain/index.php/classname/functionname/var1/var2這里的index.php 就被稱為入口文件...對于服務器而言,你這里訪問的就只有index.php 后面調用的controller 和里面的方法,甚至傳值都是在框架內部基于PHP層面實現的.

Talk is cheap, show you the code !!

首先,先建立好下面的文件結構,我們來動手試試,怎么才能訪問到controllers里面的文件...在index.php里面輸入以下內容:

print_r($_SERVER);

然后訪問 以下地址試試.

yourdomain/index.php/class/function/var1

這里作者我是用本地環境的,我訪問的地址是localhost/MVC/index.php/class/function/var1

我貼出最重要的2個變量

[REQUEST_URI] => /MVC/index.php/class/function/var1

[SCRIPT_NAME] => /MVC/index.php

其實路由最基本的原理就在這里:

通過這2個變量來提取url地址里的class 和 function,參數等,然后把class include進來,通過PHP的回調函數  call_user_func_array 調用對應的function和傳遞相應的參數.接下來上代碼,讀代碼應該比我寫的易懂.哈哈~~

index.php 的實例代碼如下:

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

在application/controllers 里面添加下面2個文件,index.php用于作為默認控制器

實例代碼如下:

  1. <?php    
  2.    
  3. class Index    
  4. {    
  5.    
  6.     function welcome()    
  7.     {    
  8.         echo ‘I am default controller’;    
  9.     }    
  10.    
  11. }    
  12.    
  13.    
  14. ?>   
  15.  
  16. hello.php 
  17.  
  18. <?php    
  19. class Hello    
  20. {    
  21.     public function index()    
  22.     {    
  23.         echo ‘hello world’;    
  24.     }    
  25.    
  26.     public function name($name)    
  27.     {    
  28.         echo ‘hello ‘ . $name;    
  29.     }    
  30. }    
  31.    
  32. ?>   

測試一下看看,能不能訪問了.根據上面的路由結構.我們來試試這個訪問正常,正確調用了hello這個class內部的name方法,然后把參數barbery傳遞過去了...再試試不輸入function name,看看能不能默認調用index.答案也是可以的...最后一個,訪問root地址看看也正確的映射到了默認控制器上...ok,一個簡單的MVC路由功能就完成了...

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 成人国产精品久久久 | 欧美日韩国产高清视频 | 尤物网址 | 精品美女久久久久久免费 | 91麻豆精品国产91久久久资源速度 | 午夜性影院| 国产成人精品在线观看 | 暖暖av | 精品久久精品 | 久久婷婷成人综合色 | 国产精品久久久久久久久久免费 | 亚洲成人精品在线 | 日韩午夜视频在线播放 | 国产精品视频1区2区3区 | 久久国产精品99久久久久久进口 | av在线不卡免费看 | 成人在线免费视频 | 精品日产卡一卡二卡麻豆 | 亚洲欧洲成人av每日更新 | 久久成人免费 | 亚洲午夜精品久久久久久浪潮 | 日本精品在线视频 | 国产精品福利一区二区 | 亚洲第二区 | 国产成人精品在线 | 亚洲视频一二三 | 欧美日韩精品一区二区三区蜜桃 | 久久久久美女 | 亚洲黄色精品 | 色婷婷综合久久久久中文一区二区 | 久久久精品一区二区三区 | 在线二区 | 视频精品一区二区三区 | 黄网站在线免费看 | 亚洲毛片网站 | 国产一区二区三区电影在线观看 | 亚洲精品免费看 | 精品视频免费在线播放 | 99国产精品久久久久久久久久 | 国产精品国产成人国产三级 | 国产精品一区二区免费看 |