PHP原生實現簡易的MVC框架

目錄結構:

—|controllerphp

—|Home.phphtml

—|model數組

—|view架構

—|welcome.php框架

—|index.php學習

基本原理:

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

實現具體代碼:

  1. /index.php 首頁代碼實現:atom

<?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 控制器代碼實現:spa

<?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。

相關文章
相關標籤/搜索