線上服務咨詢
Article/文章
記錄成長點滴 分享您我感悟
MVC真的適合PHP嗎?
發表時間:2019-07-30 16:40:16
文章來源:沈陽軟件開發
標簽:網站建設 小程序開發 小程序制作 微信小程序開發 公眾號開發 微信公眾號開發 網頁設計 網站優化 網站排名 網站設計 微信小程序設計 小程序定制 微信小程序定制
瀏覽次數:0
最近,設計模式變得流行,MVC無處不在,PHP世界也不例外。許多論壇已經開始討論在PHP中使用MVC。但是,如何在PHP中實現M,V,C? MVC真的適合PHP嗎?在這里,Easy給出了一些他自己的想法。
MVC的原型
MVC最初出現在Desktop程序中,M表示數據模型,V表示用戶界面,C表示控制器。使用MVC的目的是分離M和V的實現代碼,以便相同的程序可以使用不同的表示。例如,一批統計數據可以用直方圖和餅圖表示。 C的目的是確保M和V的同步。一旦M改變,V應該同步更新。
JAVA中的MVC
JAVA將MVC引入Web域,并在此基礎上構建了一個名為Model2的系統。由于Web的特殊性,JAVA中的MVC和桌面中的MVC并不完全相同。主要原因是Web中的V不連續。每次用戶訪問時,V將重新生成一次,因此V始終與M一致,并且不需要C來控制同步。那么JAVA中的C是做什么的呢? JAVA中的C通常用于過程轉向。它的實用性是Dispatch模式,不再是桌面C。
PHP中的MVC
在PHP中不可能保持COPY JAVA的MVC完好無損。問題主要表現在M.在JAVA中,M是一個獨立于業務邏輯和表示邏輯的數據模型。它存在于服務器端跨頁面,JAVA Bean扮演這個角色。 PHP進程長時間不駐留在內存中,它僅在PHP頁面開始執行時創建,并在頁面解釋執行結束時結束。在這種情況下,我們無法直接實現M.所以聲稱實現MVC模式的所有PHP程序都只能通過模擬實現M.實現此目的的方法通常是在當前頁面結束之前將數據存儲在數據庫或cookie /會話中,然后在下一頁中通過數據庫或cookie /會話重建M.這種方式與JAVA中的bean相比可以說是巨大的,在內存中寫入數據的簡單操作現在從服務器傳遞到客戶端或數據庫,然后傳回。不是使用如此大量的開銷來維護數據模型,然后最終將模型插回數據庫,而是根據需要更新數據庫內的數據。
那我們再來看看V.現在許多PHP程序只是使用一些模板技術來編寫描述中的“使用MVC架構”。實際上,大多數PHP模板程序只是單獨的HTML和PHP,而不是MVC強調的顯示邏輯和業務邏輯的分離。混合HTML和PHP的頁面可以是MVC的一部分。到目前為止,如何分離顯示邏輯和業務邏輯并不是一個令人滿意的解決方案。我個人同意http://www.phpe.net/articles/384.shtml的實現。至于C,與JAVA沒有太大區別,或者它被用作轉彎。這在PHP中并不重要。
資源非常密集的M +稍微差別V +可以是可選的C構成PHP中的所謂MVC。
基于上述分析,Easy認為PHP的原始三層體系結構比所謂的MVC更有效,并且三層體系結構中的表示層必須解決這個問題。改進的3層體系結構比MVC更適合PHP。
網站建設,小程序開發,小程序制作,微信小程序開發,公眾號開發,微信公眾號開發,網頁設計,網站優化,網站排名,網站設計,微信小程序設計,小程序定制,微信小程序定制