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

來源:互聯網
上載者:User

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

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

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

Static structure of Yii application

1. 一個典型的工作流程 

展示了一個 Yii 應用在處理使用者請求時典型的工作流程。

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. 動作完成視圖渲染並將其呈現給使用者。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.