這裏將全面的介紹這個框架給咱們開發帶來的好處,讓大家對它有更深層次的認識,喜歡或不喜歡的,歡迎你們前來留言討論php
如今不少的項目,特別是大一點的項目裏面,都會有不少的人蔘與,要進行程序查詢找、修改或是升級擴展的時候,目錄結構一目瞭然就顯得很重要了,更重要的是後面的人來接手的話,目錄結構不清楚,程序結構很亂的話,那估計接手的人只有哭了前端
下面就是tpframe的框架目錄結構,是否是很乾淨thinkphp
每一個目錄結構:json
addon:插件目錄瀏覽器
application:應該模塊目錄緩存
coreframe:核心程序目錄服務器
data:運行時目錄(緩存、上傳文件等)app
extend:擴展目錄(保留),爲了保持tp5程序擴展的風格,若是你習慣tp5的開發風格,你也能夠在這裏面擴展框架
theme:模板目錄(前臺、後臺)編輯器
是否是很一目瞭然,各個功能模塊都很清楚分開存放呀
分層並非tpframe弄出來的,而是把tp5的分層給充分利用起來,固然我這裏不是說的程序框架模式,經典的還屬MVC,那固然還有其它模式,像MVP,MVVM,CBD,ORM等等
我這裏要說的是MVC更細化分層,每層的在功能設計中所起的做用,爲何要這樣設計等問題
我也看到過CV模式,有部分人就推崇這種簡單直接的模式,其實這種就至關於原生PHP再升級一下而已,把邏輯相關獨立出去,固然我想的是他們喜歡這種的目的就是以爲簡單,直接了當,有人說程序執行更快?加載的東西少?
哈哈,若是僅僅是爲了速度問題,原生比什麼框架都快,不是嗎。因此討論到這個問題你就輸了(別太認真),一個框架好與很差,我的以爲應該從以下方面來參考
?可讀性好很差(換一我的能不能快速的入手)
?可維護性好很差
?程序可擴展性好很差
?程序之間耦合度是否達到儘量的低
?重複代碼是否將到最低
......
說了這些我就會問,原生PHP能作到上面的某些方面麼,就拿CV模式來講,若是一個邏輯代碼成千上萬行了,改起來估計難度很大吧,動不動出錯了怎麼辦,要在中間加一塊功能,換一我的估計都不敢改了。
那麼TPFrame框架的分層結構是怎麼樣的呢?我先來講一個公司的事務處理流程
首先是公司的前臺人員,若是有外來人員(瀏覽器),簡單的事情(不進行數據處理)直接回復就能夠,若是要設計到公司重要的事情,她們便把事情通報給相應的部門(對應的部門,爲客戶服務的)來處理,每一個部門處理重要事情總得要領導決策的吧(最終數據處理),而後再原路返回,再由前臺人員把反饋結果給外來人員(瀏覽器),因此就獲得了以下分層結構
1)、controller:控制層,控制轉發,至關於前臺
2)、service:服務層,爲數據處理而服務器,出問題,回滾,數據攔截,驗證等,至關於各部門
3)、logic:邏輯層,數據處理層(CURD操做),至關於領導
4)、view:視圖層,這即是最張呈現給客戶的方案
固然爲了數據的更細化,規範化,還少不了其它的層
5)、model:模型層,數據自動處理(數據自動完成、數據修改),其實真正的數據處理層就是它
6)、validate:驗證層,數據在進行CURD以前的驗證操做可交給它
大家可去看thinkphp文檔,這些層都是有的,只是它介紹的不是那麼的詳細。
固然有人說了,這樣開發起來好複雜哦,固然,對於一些最終都是很簡單的項目,能夠認爲它是有點複雜的,但對於 一個長期項目,之後要擴展,升級,維護的項目,這種分層絕對是有必要的。固然這樣分層也減小了代碼之間的耦合度。
如今的不少項目需求都是各端都要求(app\mobile\pc),而在開發的時候,分三批人分別開發也好,一批人按計劃開發也好,寫好一套再寫一套,仍是各寫各的一套。。。咱們都知道,不論是app也好,mobile或pc,一個項目,他們的展現數據大部分都是相同的,也就是說他們對數據處理的大部分功能都是相同的,假若是分開寫的話,就會有大量的代碼重複,之後升級三端都是加,改也要全改,維護起來更是老火。
那麼針對這種tpframe給出來的解決方案(建議):
1)、邏輯共用(放公共模塊),固然除非你確定這個功能只有這個模塊要使用,你就能夠寫在當前模塊裏面
2)、服務層各模塊,由於模塊(部門)對數據的處理可能不同(領導下達的任務),例如app可能要規範必定的數據,返回數據爲json格式 ,而pc則不同
3)、控制器各模板,由於不一樣端的入口可能不同
這裏主要在邏輯層,由於它是最重要的,也是處理比較頻繁的,它共用後,之後維護,升級都方便了。
用過微擎系統的人確定就知道,它的系統是經過插件的形式過行一步一步的擴展的,而這些插件是徹底獨立的,這樣即可以以插件的形式對系統進行任意功能的擴展了,但我發現它的插件裏面有大量重要的代碼,幾個大的插件下來,動則幾百M,大則幾G,太臃腫。
tpframe一樣實現了插件擴展系統的功能,並且進行了升級,各插件大量重複的功能模塊可獨立出來,每一個功能模塊均可以插件的方式進行開發
tpframe插件分類:
1)、行爲插件
該插件開發好後,只需要在需要顯示的地方放置鉤子便可,之後只需要在後臺開啓與關閉來控制。
好處:鉤子放置能夠在未開發插件功能前放置,之後需要的時候再開發也能夠;在不改變前端代碼的狀況下可自由開發插件
例如:編輯器插件、登陸插件
2)、模塊插件
該插件相似於thinkphp5的一個單獨模塊功能,它能夠是獨立的,有本身的數據管理功能
例如:cms插件、短信插件
3)、行爲模塊插件
它是行爲插件與模塊插件的組合
也就是說它也能夠放置鉤子,一樣也有後臺數據管理功能
例如:幻燈片插件
插件可簡單的進行安裝與卸載
OK ,這就是tpframe開發項目的一些優勢吧,再次說明它不是cms系統,它是thinkplhp5的升級版框架,若是你以爲不錯,歡迎下載使用,開源免費的哦;若是你有獨到的看法,歡迎留言