大中型應用暫且定義為:大于等于3個數據表的應用!汗吧!
Typecho原本是一款博客系統,其框架體系有別于市面上一般意義MVC框架,主體代碼以自創的Widget為基類,整體非常簡潔。
我又不是Typecho官方開發者,也不在相關背景單位segmentfault.公司工作,為什么要用這種小眾框架?
事實上,你確實不需要用Typecho,php世界的框架已太多,完全可以選擇更高級的框架。
不知從何時開始,我發現自己是一個“小眾”患者,不喜歡走尋常路。就像linux在桌面領域可能已經夠小眾了,但我喜歡用更小眾的FreeBSD。
這只是我的一次嘗試而已。
原則:基于MVC模式,增加Service層。
前面我們說過,Typecho中自創了Action概念,這便是我們C層的基礎,但Action沒有明確的定義。所以我會定義出一個Controller基類。
Typecho中沒有Model的概念,都是直接調用SQL查詢。所以也要定義Model基類。
視圖文件是View的內容載體,為減少學習成本,不再引入模板引擎,即直接使用PHP語法并直接引人C中執行。
在復雜應用中,MVC最大的問題就是可重用的代碼提煉不夠,有的人C層太胖,有的人M層太胖。引入Service業務層,有助于對業務層的提煉和封裝,盡可能提高代碼的重復使用度。
Demo項目:Typecho Alumni校友錄插件項目
代碼地址:https://github.com/web3d/plugins/tree/master/Alumni
項目代碼結構:
/plugins/Alumni/Base/Action.php|Model.php|Service.php|Helper.php
/plugins/Alumni/Model/
/plugins/Alumni/Service/
/plugins/Alumni/Action/
/plugins/Alumni/views/default/
/plugins/Alumni/Plugin.php
/plugins/Alumni/panel.php
==========
未完待續...
新聞熱點
疑難解答