MVC 將項目拆分為 Model(數據)、View(視圖)、Controller(控制),實現關注點分離、代碼復用、團隊協作。本文闡述 MVC 價值、PHP 實現思路、基類設計藍圖、用戶登錄場景執行流程。
執行順序:**C → V → M** 或 **C → M**(與名稱順序相反)。
user/)可直接複製到新項目,修改接口即用。class Controller {
public function main() { /* 入口:解析 GET/POST 決定動作 */ }
protected function getModel($name) { /* 載入對應 Model 實例 */ }
protected function display($view) { /* 載入 View 並調用其 main() */ }
}
class View {
public function main() { /* 視圖邏輯:獲取數據、賦值模板 */ }
protected function getModel($name) { /* 同 Controller */ }
protected function display($template) { /* 載入模板文件、輸出 HTML */ }
}
class Model {
protected $table, $fields; // 定義操作表、字段
protected function getDB() { /* 返回單例數據庫連接 */ }
public function load($id) { /* 查詢單條 */ }
public function add($data) { /* 插入 */ }
public function edit($id, $data) { /* 更新 */ }
public function del($id) { /* 刪除 */ }
}
index.php?controller=user → 載入 user/Controller.php → 調用 main()。do=login → getModel('User') → $model->load($username) → 驗證密碼 → 失敗跳轉、成功 display('Detail')。Detail/main() → 可選再次 getModel 獲取詳情 → display('detail.tpl') 輸出模板。index.php,由路由解析分發。spl_autoload_register + PSR-4 命名空間,避免手動 require。