FleaPHP 採用 Passive (被動) MVC:Model 完全不知曉 MVC 結構存在,只是普通物件。三角色職責:
index.php 定義常數、載入框架、呼叫 run()。?controller=blog&action=list 參數決定呼叫 BlogController::listAction()。// Controller
class BlogController extends Flea_Controller {
public function listAction() {
$model = new BlogModel(); // Model 實例
$posts = $model->getRecentPosts(); // 呼叫業務邏輯
$this->view->posts = $posts; // 傳遞資料給 View
$this->view->render('blog_list'); // 渲染模板 blog_list.tpl
}
}
// Model (純粹類別,無框架基類)
class BlogModel {
public function getRecentPosts() {
// 資料庫查詢、快取邏輯...
return $data;
}
}
// View: blog_list.tpl (Smarty/PHP 模板)
{foreach $posts as $post}
{$post.title}
{$post.summary}
{/foreach}
Controller **不應** 包含 SQL、HTML 生成、Session 直接操作等細節;這些屬於 Model 或 View/Helper 職責。Controller 只做「流程編排」。