Yii 使用了 Web 開發中廣泛采用的模型-視圖-控制器(MVC)設計模式。 MVC的目標是將業務邏輯從用戶界面的考慮中分離,這樣開發者就可以更容易地改變每一部分而不會影響其他。 在 MVC中,模型代表信息(數據)和業務規則;視圖包含了用戶界面元素,例如文本,表單等; 控制器則管理模型和視圖中的通信。
除了 MVC, Yii 還引入了一個前端控制器,叫做 應用,它表示請求處理的執行上下文。 應用處理用戶的請求并將其分派到一個合適的控制器以繼續處理。
下面的示意圖展示了 Yii 應用的靜態結構:
一個典型的工作流
下圖展示了一個 Yii 應用在處理用戶請求時典型的工作流。
- 用戶發出了訪問 URL http://www.example.com/index.php?r=post/show&id=1 的請求, Web 服務器通過執行入口腳本 index.php 處理此請求。
- 入口腳本創建了一個 應用 實例并執行。
- 應用從一個叫做 request 的 應用組件 中獲得了用戶請求的詳細信息。
- 應用在一個名叫 urlManager 的應用組件的幫助下,決定請求的 控制器 和 動作 。在這個例子中,控制器是post,它代表 PostController 類; 動作是 show ,其實際含義由控制器決定。
- 應用創建了一個所請求控制器的實例以進一步處理用戶請求。控制器決定了動作 show 指向控制器類中的一個名為actionShow 的方法。然后它創建并持行了與動作關聯的過濾器(例如訪問控制,基準測試)。 如果過濾器允許,動作將被執行。
- 動作從數據庫中讀取一個 ID 為 1 的 Post 模型。
- 動作通過 Post 模型渲染一個名為 show 的 視圖。
- 視圖讀取并顯示 Post 模型的屬性。
- 視圖執行一些 小物件。
- 視圖的渲染結果被插入一個 布局。
- 動作完成視圖渲染并將其呈現給用戶。
掃碼二維碼 獲取免費視頻學習資料
- 本文固定鏈接: http://phpxs.com/post/1299/
- 轉載請注明:轉載必須在正文中標注并保留原文鏈接
- 掃碼: 掃上方二維碼獲取免費視頻資料
查 看2022高級編程視頻教程免費獲取