PHP原生實現簡易的MVC框架


目錄結構:

—|controller

—|Home.php

—|model

—|view

—|welcome.php

—|index.php

基本原理:

首頁 index.php 通過獲得地址欄中的路由名稱獲得對應控制器以及控制的方法名,通過require引入到index.php首頁中。通過引入的對應控制器的類實例化一個對象,對象調用路由地址映射的方法,實現對視圖層的調用顯示。

實現具體代碼:

  1. /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);
  1. /controller/Home.php 控制器代碼實現:

<?php
class Home{

   public function index(){
       echo 'hello MVC';
  }

   public function welcome(){
       require_once __DIR__.'/../view/welcome.php';
  }
}
  1. /view/welcome.php 視圖層代碼實現:

<!DOCTYPE html>
<html>
<head>
   <title>welcome</title>
</head>
<body>
<div style="font-size: 18px;text-align: center;color: red;">welcome to hefei</div>
<?php echo date('Y-m-d H:i:s')?>
</body>
</html>

結束語:

基本上大部分框架都是基於MVC架構實現的,懂得基本的MVC框架設計的原理,有助於我們學習框架,以及對良好的框架的應用更加得心應手,並能很好地理解其中的設計思想,慢慢演化成為一個有想法的Coder。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM