最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP MVC框架路由學習筆記

 更新時間:2016年03月02日 11:11:51   投稿:mrr  
這篇文章主要介紹了PHP MVC框架路由學習筆記的相關資料,需要的朋友可以參考下

提到PHP開發(fā)web,自然離不開開發(fā)框架,開發(fā)框架為我們提供了靈活的開發(fā)方式,MVC層分離,業(yè)務解耦等。。。

第一篇先來簡單點的,說說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

這里作者我是用本地環(huán)境的,我訪問的地址是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 的內容如下

<?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 (empty($url)) 
{ 
# 默認控制器和默認方法 
$class = ‘index'; 
$func = ‘welcome'; 
} 
else 
{ 
$URI = explode(‘/', $url); 
# 如果function為空 則默認訪問index 
if (count($URI) < 2) 
{ 
$class = $URI[0]; 
$func = ‘index'; 
} 
else 
{ 
$class = $URI[0]; 
$func = $URI[1]; 
} 
} 
# 把class加載進來 
include(APPPATH . ‘/' . ‘application/controllers/' . $class . ‘.php'); 
#實例化 
$obj = new ucfirst($class); 
call_user_func_array( 
# 調用內部function 
array($obj,$func), 
# 傳遞參數 
array_slice($URI, 2) 
); 

在application/controllers 里面添加下面2個文件

index.php 用于作為默認控制器

<?php 
class Index 
{ 
function welcome() 
{ 
echo ‘I am default controller'; 
} 
} 
?> 
hello.php
<?php 
class Hello 
{ 
public function index() 
{ 
echo ‘hello world'; 
} 
public function name($name) 
{ 
echo ‘hello ‘ . $name; 
} 
} 
?>

測試一下看看,能不能訪問了。根據上面的路由結構。我們來試試

這個訪問正常,正確調用了hello這個class內部的name方法,然后把參數barbery傳遞過去了。。。

再試試不輸入function name,看看能不能默認調用index。。

答案也是可以的。。。

最后一個,訪問root地址看看

也正確的映射到了默認控制器上。。。

ok,一個簡單的MVC路由功能就完成了。。。

相關文章

  • WordPress后臺中實現圖片上傳功能的實例講解

    WordPress后臺中實現圖片上傳功能的實例講解

    這篇文章主要介紹了WordPress后臺中實現圖片上傳功能的實例講解,包括多個圖片上傳表單功能的實現,需要的朋友可以參考下
    2016-01-01
  • Thinkphp5文件包含漏洞解析

    Thinkphp5文件包含漏洞解析

    這篇文章主要為大家介紹了Thinkphp5文件包含漏洞解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • Yii2語言國際化自動配置詳解

    Yii2語言國際化自動配置詳解

    這篇文章主要介紹了Yii2語言國際化自動配置詳解,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • php項目接入xxl-job調度系統的示例詳解

    php項目接入xxl-job調度系統的示例詳解

    這篇文章主要介紹了php項目接入xxl-job調度系統的示例代碼,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-12-12
  • 淺談PHP中的數據傳輸CURL

    淺談PHP中的數據傳輸CURL

    下面小編就為大家?guī)硪黄獪\談PHP中的數據傳輸CURL。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • php爬取天貓和淘寶商品數據

    php爬取天貓和淘寶商品數據

    這篇文章主要為大家詳細介紹了php爬取天貓和淘寶商品數據的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • PHP 實現瀏覽記錄并按日期分組

    PHP 實現瀏覽記錄并按日期分組

    這篇文章主要介紹了PHP 實現瀏覽記錄并按日期分組的實例代碼,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-05-05
  • thinkPHP框架整合tcpdf插件操作示例

    thinkPHP框架整合tcpdf插件操作示例

    這篇文章主要介紹了thinkPHP框架整合tcpdf插件操作,結合實例形式較為詳細的分析了thinkPHP框架整合tcpdf插件的具體步驟、相關操作技巧與注意事項,需要的朋友可以參考下
    2018-08-08
  • PHP+fiddler抓包采集微信文章閱讀數點贊數的思路詳解

    PHP+fiddler抓包采集微信文章閱讀數點贊數的思路詳解

    這篇文章主要介紹了PHP+fiddler抓包采集微信文章閱讀數點贊數的思路,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-12-12
  • Laravel用戶授權系統的使用方法示例

    Laravel用戶授權系統的使用方法示例

    這篇文章主要給大家介紹了關于Laravel用戶授權系統使用的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-09-09

最新評論

江都市| 荣成市| 普兰县| 呼玛县| 元氏县| 岳阳县| 金秀| 梅州市| 镇巴县| 全南县| 华宁县| 靖安县| 宜都市| 沧州市| 乌兰浩特市| 天镇县| 苏尼特左旗| 济宁市| 房产| 龙川县| 新津县| 尖扎县| 永修县| 名山县| 沈阳市| 东丰县| 南汇区| 安远县| 沂水县| 阜康市| 米易县| 双峰县| 乐山市| 新竹县| 图片| 伊吾县| 益阳市| 仲巴县| 米脂县| 丰城市| 革吉县|