基於Typecho CMS框架開發大中型應用
大中型應用暫且定義為:大於等於3個資料表的應用程式!汗吧!
Typecho原本是一款部落格系統,其框架體係有別於市面上一般意義MVC框架,主體程式碼以自創的Widget為基類,整體非常簡潔。
Typecho基本特性如下:
- 單一入口
- 除Db配置外,其他配置存於DB中
- 路由配置也存於DB中
-
自創Action層,類似傳統的Controller層
Hook機制
泛Plugin機制,Plugin包含註冊已有Hook的Handler、擴充已註冊Widget的方法、繪製新的前端Route以繪製新的Action、註冊後端管理介面
支援UI主題-
為什麼要基於Typecho開發應用
我又不是Typecho官方開發者,也不在相關背景單位segmentfault.公司工作,為什麼要用這種小眾框架?
事實上,你確實不需要用Typecho,PHP世界的框架已太多,完全可以選擇更高級的框架。
不知從何時開始,我發現自己是個「小眾」患者,不喜歡走尋常路。就像Linux在桌面領域可能已經夠小眾了,但我喜歡用更小眾的FreeBSD。
這只是我的一次嘗試而已。
實踐
原則:基於MVC模式,增加Service層。
C層-
前面我們說過,Typecho中自創了Action概念,這便是我們C層的基礎,但Action沒有明確的定義。所以我會定義出一個Controller基底類別。
M層-
Typecho中沒有Model的概念,都是直接呼叫SQL查詢。所以也要定義Model基底類別。
V層-
視圖文件是View的內容載體,為減少學習成本,不再引入模板引擎,即直接使用
PHP語法並直接引人C中執行。
Service層-
在複雜應用中,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
==========
未完待續...
以上就介紹了基於Typecho CMS框架開發大中型應用,包括了PHP語法,github方面的內容,希望對PHP教程有興趣的朋友有所幫助。