相信所有習慣了使用MVC來組織自己的項目的人,讓他選擇壹個新的項目構架時,壹定不會放棄MVC。傳統的面相過程式的開發方式在處理中型以上的應用時,就開始顯得力不從心。即便我們能夠快速的完成需求,但是在需求發生變更後或者進行後期維護的時候,我們會深深地陷入我們早期搭建的陷阱中。什麽是MVC?關於MVC的定義和解釋,可以說多種多樣。我們可以在Wiki或者[2]中找到更為詳盡的解釋,這裏我並不打算,也沒有能力進行深入的講解,從PHP開發的角度來講,MVC可以概括為:視圖(The View):壹說到視圖,我們很多人都會想到模板引擎(諸如Smarty等等)。其實就是各種各樣的輸出,比如說html模板和Javascript文件等。模塊(The Model)模塊代表了程序的邏輯,在企業應用中通常稱為業務邏輯層。壹般來講,這壹層完成的工作是把原始的數據處理成按照我們設計的數據結構存儲的有意義的數據序列,並將這些數據交給視圖去處理。通常情況下, 模塊中會利用壹個數據抽象類來進行與數據操作有關的處理。關於MVC的是否適合PHP的爭論也很多,人們不斷的討論MVC是否適合PHP[3],現在也已經有了很多的MVC框架,諸如PHP MVC Frameworks中列出的[4]。那麽,為什麽人們這麽熱衷於MVC,我們為什麽要使用MVC在我們的設計中呢。為什麽用MVC?MVC最早是用來解決桌面GUI的編程問題,最早的MVC框架應該是Sun在1999年提出的Model 2,後來演變成了Struts。MVC帶給人們深刻的印象,但是我們在使用的過程中,卻並沒有認真的想過為什麽使用MVC。在傳統的桌面應用中,壹旦Model中有時間發生,我們可以主動的讓View界面進行刷新,從而展示後臺發生的變化。而在Web應用中,我們似乎限於傳統的Http的Request/Response的方式,我們似乎沒有辦法讓用戶端進行更新。這壹段討論,並不是認為MVC不能夠用來進行WEB應用的開發,而是覺得從某種程度上來說,他還不是最合適的。關於使用MVC的爭論還有很多[1],但是相信所有習慣了使用MVC來組織自己的項目的人,讓他選擇壹個新的項目構架時,壹定不會放棄MVC。如何PHP實現MVC?下面是壹個超級簡單的MVC結構實現,甚至連數據源都用了壹個內置的固定數組,雖然簡單,但其實眾多的PHP Framework核心實現的思想應該和這個是差不多的,只不過壹些framework提供了更多的方便開發者使用的工具,我也想自己來實現壹個PHP的框架,目前正在著手策劃中,也希望自己能夠從框架的開發中學習到更多的PHP設計思想和方法。
上一篇:融資 下一篇: 鍋圈食匯每2000戶即開設壹家社區門店