PHP MVC框架路由學習筆記

2022-10-03 18:15:11 字數 2034 閱讀 8514

提到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位址裡的cla程式設計客棧ss 和 function,引數等,然後把class include進來,通過php的**函式call_user_func_array 呼叫對應的function和傳遞相應的引數。

接下來上**,讀**應該比我寫的易懂。哈哈~~

index.php 的內容如下

<?php # 定義applicatio程式設計客棧n路徑

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))

else

else }

# 把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 }

?>

hello.php

<?php class hello

public function name($name) }

?>

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

這個訪問正常,正確呼叫了hello這個class內部的name方法,然後把引數barbery傳遞過去了。。。

再試試不輸入function name,看看能不能預設呼叫index。。

答案也是可以的。。。

最後乙個,訪問root位址看看

也正確的對映到了預設控制器上。。。

ok,乙個簡單的mvc路由功能就完成了。。。

本文標題: php mvc框架路由學習筆記

本文位址:

PHP MVC開發框架學習

通過學習mvc能夠更深的了解一些mvc框架 mvc是乙個設計模式,它強制性的使應用程式的輸入 處理和輸出分開。使用mvc應用程式被分成三個核心部件 模型 m 檢視 v 控制器 c 它們各自處理自己的任務。檢視 檢視是使用者看到並與之互動的介面。對老式的web應用程式來說,檢視就是由html元素組成的...

php裡mvc結構的框架,php mvc框架結構

很抱歉這裡有這麼多 我盡量表現出足夠的理解力,同時避免混淆 我希望如此 我在 pastebin 執行時不會出現錯誤 通知 警告。我目前正在建立乙個內容管理系統,同時嘗試實現模型 檢視 控制器的思想。我最近才接觸到mvc的概念 在上週內 並試圖將其應用到我當前的專案中。cms的乙個特性是動態 可定製的...

選擇最好的PHP MVC開發框架

儘管在一些測試基準資料中,運用最快的開發框架比原生php 也要慢上很多。但是這些測試結果並不是實際生產環境資料的真實反映。事實上echo hello world 或者簡單的資料插入查詢的測試不具有實際意義。因為在實際使用中,即使是不使用框架,也總會建立一些輔助類庫,並在執行時載入,比如安全 日誌,而...