目錄結構: —|controller —|Home.php —|model —|view —|welcome.php —|index.php 基本原理: 首頁 index.php 通過獲得地址欄中的路由名稱獲得對應控制器以及控制的方法名,通過require引入到index.php首頁中。通過引入的對 ...
目錄結構:
—|controller
—|Home.php
—|model
—|view
—|welcome.php
—|index.php
首頁
index.php
通過獲得地址欄中的路由名稱獲得對應控制器以及控制的方法名,通過require引入到index.php首頁中。通過引入的對應控制器的類實例化一個對象,對象調用路由地址映射的方法,實現對視圖層的調用顯示。
實現具體代碼:
-
/index.php
首頁代碼實現:
<?php
# 獲取當前的服務地址
$server = $_SERVER;
#獲取到當前訪問的主機名之後的URI
$path = $server['REQUEST_URI']; # /test/index.php/home/welcome
$path = ltrim($path, '/'); # 去掉獲得的路徑前的 /
$controller_method = explode('/', $path); # 根據 / 獲得分割數組來取得控制器名字和對應方法
$controller = ucfirst($controller_method[2]); # 將控制器名字的第一個更換為大寫
$method = $controller_method[3]; # 對應的方法名
require_once __DIR__.'/controller/'.$controller.'.php'; # 定位到當前使用的控制器
$obj = new $controller(); //實例化控制器對象
$obj->$method(); //控制器對象調用目標方法
exit($obj);
-
/controller/Home.php
控制器代碼實現:
<?php
class Home{
public function index(){
echo 'hello MVC';
}
public function welcome(){
require_once __DIR__.'/../view/welcome.php';
}
}
-
/view/welcome.php
視圖層代碼實現:
結束語:
基本上大部分框架都是基於MVC架構實現的,懂得基本的MVC框架設計的原理,有助於我們學習框架,以及對良好的框架的應用更加得心應手,並能很好地理解其中的設計思想,慢慢演化成為一個有想法的Coder。