yii 使用了 web 開發(fā)中廣泛采用的模型-視圖-控制器(mvc)設(shè)計(jì)模式。 mvc的目標(biāo)是將業(yè)務(wù)邏輯從用戶界面的考慮中分離,這樣開發(fā)者就可以更容易地改變每一部分而不會(huì)影響其他。 在 mvc中,模型代表信息(數(shù)據(jù))和業(yè)務(wù)規(guī)則;視圖包含了用戶界面元素,例如文本,表單等; 控制器則管理模型和視圖中的通信。
除了 MVC, Yii 還引入了一個(gè)前端控制器,叫做 應(yīng)用,它表示請(qǐng)求處理的執(zhí)行上下文。 應(yīng)用處理用戶的請(qǐng)求并將其分派到一個(gè)合適的控制器以繼續(xù)處理。
下面的示意圖展示了 Yii 應(yīng)用的靜態(tài)結(jié)構(gòu):
下圖展示了一個(gè) Yii 應(yīng)用在處理用戶請(qǐng)求時(shí)典型的工作流。
用戶發(fā)出了訪問 URL?http://miracleart.cn/?的請(qǐng)求, Web 服務(wù)器通過執(zhí)行入口腳本?index.php?處理此請(qǐng)求。
入口腳本創(chuàng)建了一個(gè)?應(yīng)用?實(shí)例并執(zhí)行。
應(yīng)用從一個(gè)叫做?request?的?應(yīng)用組件?中獲得了用戶請(qǐng)求的詳細(xì)信息。
應(yīng)用在一個(gè)名叫?urlManager?的應(yīng)用組件的幫助下,決定請(qǐng)求的?控制器?和?動(dòng)作?。在這個(gè)例子中,控制器是post,它代表?PostController?類; 動(dòng)作是?show?,其實(shí)際含義由控制器決定。
應(yīng)用創(chuàng)建了一個(gè)所請(qǐng)求控制器的實(shí)例以進(jìn)一步處理用戶請(qǐng)求??刂破鳑Q定了動(dòng)作?show?指向控制器類中的一個(gè)名為actionShow?的方法。然后它創(chuàng)建并持行了與動(dòng)作關(guān)聯(lián)的過濾器(例如訪問控制,基準(zhǔn)測(cè)試)。 如果過濾器允許,動(dòng)作將被執(zhí)行。
動(dòng)作從數(shù)據(jù)庫(kù)中讀取一個(gè) ID 為?1?的?Post?模型。
動(dòng)作通過?Post?模型渲染一個(gè)名為?show?的?視圖。
視圖讀取并顯示?Post?模型的屬性。
視圖執(zhí)行一些?小物件。
視圖的渲染結(jié)果被插入一個(gè)?布局。
動(dòng)作完成視圖渲染并將其呈現(xiàn)給用戶。
以上就是Yii框架官方教程增補(bǔ)篇4——基礎(chǔ)知識(shí):模型-視圖-控制器 (MVC)的內(nèi)容,更多相關(guān)內(nèi)容請(qǐng)關(guān)注PHP中文網(wǎng)(miracleart.cn)!
每個(gè)人都需要一臺(tái)速度更快、更穩(wěn)定的 PC。隨著時(shí)間的推移,垃圾文件、舊注冊(cè)表數(shù)據(jù)和不必要的后臺(tái)進(jìn)程會(huì)占用資源并降低性能。幸運(yùn)的是,許多工具可以讓 Windows 保持平穩(wěn)運(yùn)行。
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號(hào)
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://miracleart.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)