運行機制概述
每一次 Yii 應(yīng)用開始處理 HTTP 請求時,它都會進行一個近似的流程。
- 用戶提交指向?入口腳本?
web/index.php
?的請求。
- 入口腳本會加載?配置數(shù)組?并創(chuàng)建一個?應(yīng)用?實例用于處理該請求。
- 應(yīng)用會通過?request(請求)?應(yīng)用組件解析被請求的?路由。
- 應(yīng)用創(chuàng)建一個?controller(控制器)?實例具體處理請求。
- 控制器會創(chuàng)建一個?action(動作)?實例并為該動作執(zhí)行相關(guān)的 Filters(訪問過濾器)。
- 如果任何一個過濾器驗證失敗,該動作會被取消。
- 如果全部的過濾器都通過,該動作就會被執(zhí)行。
- 動作會加載一個數(shù)據(jù)模型,一般是從數(shù)據(jù)庫中加載。
- 動作會渲染一個 View(視圖),并為其提供所需的數(shù)據(jù)模型。
- 渲染得到的結(jié)果會返回給?response(響應(yīng))?應(yīng)用組件。
- 響應(yīng)組件會把渲染結(jié)果發(fā)回給用戶的瀏覽器。
下面的示意圖展示了應(yīng)用是如何處理一個請求的。

在這個版塊中,我們會更加詳細地描述某些步驟的具體運作。