回答
Zend Framework有自己非常好的Quick Start/Tutorial,它特別介紹MVC。從那裏
報價:
那麼究竟什麼是這個MVC模式 大家都在談論,爲什麼 要照顧嗎? MVC遠不止 只是一個三個字母的縮寫(TLA),你可以隨時隨地抽出你想要的 聽起來聰明;它已成爲現代 網絡應用程序設計中標準的 。理由很充分。 大多數網絡應用程序代碼都屬於 以下三類之一: 演示文稿,業務邏輯和數據 訪問。 MVC模式很好地模擬了這種關注的分離。結果 結果是您的演示代碼 可以合併在您的應用程序的一個部分 您的業務 邏輯在另一個和您的數據訪問 代碼在另一個。許多開發者 已經發現這個明確定義的 分隔是必不可少的,以保持 他們的代碼有組織,特別是當多個開發人員在 上工作的 相同的應用程序。
有跡象表明,給MVC的概念解釋,#2其他幾個問題:
概念的一個很好的解釋可以上找到Wikipedia:
模型 - 視圖 - 控制器(MVC)是 工程中使用的 架構模式。成功使用 圖案的從 用戶接口的考慮隔離的業務邏輯, 造成一個應用程序,它是 易於修改或者視覺外觀 應用或 底層業務規則,而不 影響其他。在MVC中,型號 代表應用程序的信息(數據) ;視圖 對應於用戶界面的元素,例如文本,複選框 項目等等;並且 控制器管理數據的通信 和用於 的業務規則處理來自 模型的數據。
關於Zend框架:
- 模型一般由
Zend_Db_Table
類 - 意見表示爲
*.phtml
文件在您定義的腳本文件夾的擴展,提出了這由Zend_View
類處理。 - 控制器由
Zend_Controller_Action
類的擴展定義。
在爲幾句話越好:
- 模型是DB
- 的觀點是你所看到的(頁)
- 控制器膠水(邏輯)
您的模型知道如何訪問包含您的數據的表格;你的觀點知道如何顯示內容;和你的控制器粘在一起(我顯示什麼視圖?我應該使用什麼模型?)。
控制器更像是一個「服務孵化器」,而模型實際上包含很多邏輯。這不僅僅是數據庫。訪問數據庫可以成爲模型邏輯的一部分。 – magnetronnie 2014-10-10 11:30:39
M - 模型 - 往往是混亂的最大來源。這些是您的應用程序的一部分,它們完成所有'繁重工作' - 它們處理數據庫訪問,執行復雜的特定於應用程序的邏輯,並負責應用程序的大部分工作。與視圖和控制器不同,Zend Framework沒有模型的基類 - 這是因爲他們所做的沒有真正的一致性。一些框架(比如Ruby on Rails)嘗試將某種數據庫包裝器作爲Model的基礎,但是有很多情況(第三方提要/ API,靜態文件,非持久計算,跨多個表的概念.. ),對此,充其量只是一種誤導性的做法。模型是應用程序中仍然被迫編程的部分,框架無法真正爲您節省時間。
V - 視圖 - 是這裏最簡單的組件。他們應該是簡單的PHP/HTML模板。他們被賦予視圖對象,數組,字符串等,然後將它們放入頁面中。這裏不應該有太多(如果有的話)複雜的邏輯 - 循環這些,顯示這個(如果定義),斑馬條紋這個表和什麼。 View Helper有一些魔術(例如魔術般地呈現Zend_Form
的助手),但這對理解整個系統並不重要。
C - 控制器 - 從最廣泛的意義上講,控制器負責接收用戶請求,將它們發送到Model對象並準備將模型交給Views。這是將所有東西放在一起的膠水。如果您使用的是Zend MVC,那麼您需要關注2個控制器 - Zend_Controller_Front
和Zend_Controller_Action
。
Zend_Controller_Front
(如果您使用Zend_Layout::startMVC()
,您可以免費獲得)是應用程序的單一入口 - 它處理原始用戶請求並將URL轉換爲要調用的Action。有很多地方可以對此進行「插件」來處理身份驗證和訪問限制等問題,但核心只是前門處的「交通警察」來指導傳入的請求。
Zend_Controller_Action
是動作的基類 - 本質上,Action表示應用程序執行的操作(登錄,列出博客條目,啓動ICBM,訂購匹薩...),但不直接負責實際操作。 Action控制器非常無聊 - 它們從表單和URL中抽取值,在Model類上調用幾個方法來實際執行操作並將結果推送到視圖中。如前所述,它們是將模型和視圖放在一起的「粘合劑」。
一個粗略的測試,看看你是否沿着正確的路線分裂東西,是想象你的網站發生重大變化。視覺重新設計將幾乎完全在視圖中處理。移動所有網址會改變您的控制器。從Web應用程序轉換爲GUI應用程序將取代視圖和控制器,但您的模型仍然大部分未更改。如果你重寫你的模型,你有一個全新的應用程序。
- 1. 關於java spring mvc框架
- 2. Zend框架相關
- 3. 關於Mysql的Zend框架查詢
- 4. 什麼是最好的ASP.NET MVC框架/架構,爲什麼?
- 5. zend標籤組件在zend框架中的用途是什麼?
- 6. 登錄MVC(Zend框架)
- 7. Zend框架表關係
- 8. Zend框架關係 - findDependentRowset
- 9. 什麼是kohana框架用於?
- 10. 什麼是基於接口的框架?
- 11. Zend框架::對於諧音
- 12. 關於Facebook分析框架,「上傳符號文件」是什麼?
- 13. 關於在MVC框架中查看
- 14. trac基於什麼框架?
- 15. JSF MVC框架中的MVC是什麼組件?
- 16. 什麼是Full stack mvc框架? Grails是完整的堆棧框架?
- 17. 什麼是學習Zend框架的好資源?
- 18. 在zend框架中ACL中的資源是什麼
- 19. 包含zend框架的正確方法是什麼?
- 20. 是什麼重定向之間的區別和Zend框架
- 21. Zend框架application.ini中的註釋語法是什麼?
- 22. 框架究竟是什麼?就像Zend Framework for PHP
- 23. 使用Zend框架實現MVC
- 24. 與zend框架mvc ext錯誤
- 25. MVC優化問題框架Zend
- 26. mvc如何在Zend框架中工作
- 27. 什麼是.NET框架
- 28. 什麼是「優秀」框架?
- 29. 什麼是M2M Mihini框架?
- 30. 什麼是PastryKit框架?
幾乎正確。除非你正在研究一個簡單的應用程序,否則Zend_Db_Table不是模型的充分基礎。查看http://codeutopia.net/blog/2008/12/06/food-for-thought-utilizing-models-in-mvc/瞭解更多細節。 – 2009-01-06 17:40:16