yii 模型-視圖-控制器 (MVC)

from http://www.yiichina.com/guide/basics.mvc

Yii 使用了 Web 開發中廣泛採用的模型-視圖-控制器(MVC)設計模式。 MVC的目標是將業務邏輯從用戶界面的考慮中分離,這樣開發者就可以更容易地改變每一部分而不會影響其他。 在 MVC中,模型代表信息(數據)和業務規則;視圖包含了用戶界面元素,例如文本,表單等; 控制器則管理模型和視圖中的通信。

除了 MVC, Yii 還引入了一個前端控制器,叫做 應用,它表示請求處理的執行上下文。 應用處理用戶的請求並將其分派到一個合適的控制器以繼續處理。

下面的示意圖展示了 Yii 應用的靜態結構:

Static structure of Yii application

Static structure of Yii application

一個典型的工作流

下圖展示了一個 Yii 應用在處理用戶請求時典型的工作流。

A typical workflow of Yii application

A typical workflow of Yii application
  1. 用戶發出了訪問 URL http://www.example.com/index.php?r=post/show&id=1 的請求, Web 服務器通過執行入口腳本 index.php 處理此請求。
  2. 入口腳本創建了一個 應用 實例並執行。
  3. 應用從一個叫做 request 的 應用組件 中獲得了用戶請求的詳細信息。
  4. 應用在一個名叫 urlManager 的應用組件的幫助下,決定請求的 控制器 和 動作 。在這個例子中,控制器是 post,它代表 PostController 類; 動作是 show ,其實際含義由控制器決定。
  5. 應用創建了一個所請求控制器的實例以進一步處理用戶請求。控制器決定了動作 show 指向控制器類中的一個名爲actionShow 的方法。然後它創建並持行了與動作關聯的過濾器(例如訪問控制,基準測試)。 如果過濾器允許,動作將被執行。
  6. 動作從數據庫中讀取一個 ID 爲 1 的 Post 模型
  7. 動作通過 Post 模型渲染一個名爲 show 的 視圖
  8. 視圖讀取並顯示 Post 模型的屬性。
  9. 視圖執行一些 小物件
  10. 視圖的渲染結果被插入一個 佈局
  11. 動作完成視圖渲染並將其呈現給用戶。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章