| 類別 | 職責 | 關鍵方法/屬性 |
|---|---|---|
sfController | 前端控制器,解析請求、調度模組/動作 | dispatch(), forward(), getAction() |
sfRequest (sfWebRequest) | 封裝 HTTP 請求:參數、Cookie、Header、檔案、Session | getParameter(), getUri(), isXmlHttpRequest(), getFiles() |
sfResponse | 封裝 HTTP 回應:Header、內容、Cookie、狀態碼 | setContent(), setStatusCode(), setHttpHeader(), send() |
sfContext | 單例容器,持有所有核心物件參考(Controller、Request、Response、User、Database、Routing、Logger...) | getInstance(), getController(), getRequest(), getResponse(), getUser() |
所有核心類別統一加上 sf 前綴(如 sfController、sfRequest),避免與專案自訂類別衝突,並易於識別框架內建元件。
Request (sfWebRequest)
↓
Front Controller (web/index.php)
↓
sfContext::getInstance() ← 取得單例
↓
sfController::dispatch()
↓
Routing (routing.yml) → 解析 module/action/parameters
↓
Module/Action 執行 (executeIndex())
↓
View (templates/indexSuccess.php) ← 可存取 $sf_request, $sf_user, $sf_params...
↓
Response (sfResponse) → send() → 輸出 HTML