首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP MVC 框架程式設計精髓:從傳統寫法到現代架構的轉變

     編輯:PHP 相關知識

MVC 生活化比喻

汽車 = MVC:內飾/外觀 = View(顯示);駕駛員 = Controller(控制);剎車/方向盤/引擎 = Model(模型,實際執行邏輯)。駕駛員下指令,模型執行,視圖呈現結果。

Web 上的 MVC

單一入口 index.php 為 Controller,根據參數 (module, event, action) 決定載入哪個模組類別並呼叫哪個方法。如 /index.php?module=foo&event=bar → foo::bar()。

優勢:

  • 統一介面:所有請求集中處理,共享 DB 連線、驗證、路徑解析。
  • 代碼復用:模組間可互相呼叫,避免重複。

為何自建 MVC 框架?

現有框架 (Solar, Cake) 均未充分利用 PEAR/Smarty 等成熟庫;Cake 早期混亂;Solar 單人維護風險大。自建可量身打造,整合團隊熟悉的工具鏈。

舊寫法痛點:template.txt 模式

<?php
require_once('config.php');
$APP_DB = 'mydb'; $APP_REQUIRE_LOGIN = false;
$APP_TEMPLATE_FILE = 'foo.php'; $APP_TITLE = "My App";
if ($APP_REQUIRE_LOGIN && !isset($_SESSION['userID'])) { header('Location: /login.php'); exit(); }
$db = DB::connect('mysql://...');
// 業務邏輯混雜在這裡...
include_once('header.php');
include_once($APP_TEMPLATE_FILE);
include_once('footer.php');
?>

缺點:輸出格式死板(只能 HTML)、驗證方式硬編碼、多級權限難擴充、無法輕易切換 PDF/SOAP 輸出、緩存控制分散。

新寫法:MVC 類別模式

<?php
class myapp extends FR_Auth_User {
    public function __construct() { parent::__construct(); }
    public function __default() { /* 預設動作 */ }
    public function delete() { /* 刪除邏輯 */ }
    public function __destruct() { parent::__destruct(); }
}
?>

Controller 掌握一切:認證策略可換 (LDAP/DB)、輸出格式可切 (HTML/PDF/SOAP)、事件處理單一職責、緩存由 Controller/模板引擎協作控制。一旦轉型 MVC,回不去舊路。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved