這里將全面的介紹這個框架給我們開發(fā)帶來的好處,讓你們對它有更深層次的認識,喜歡或不喜歡的,歡迎大家前來留言討論
創(chuàng)新互聯(lián)公司服務(wù)項目包括璧山網(wǎng)站建設(shè)、璧山網(wǎng)站制作、璧山網(wǎng)頁制作以及璧山網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,璧山網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到璧山省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!現(xiàn)在很多的項目,特別是大一點的項目里面,都會有很多的人參與,要進行程序查詢找、修改或是升級擴展的時候,目錄結(jié)構(gòu)一目了然就顯得很重要了,更重要的是后面的人來接手的話,目錄結(jié)構(gòu)不清楚,程序結(jié)構(gòu)很亂的話,那估計接手的人只有哭了
下面就是tpframe的框架目錄結(jié)構(gòu),是不是很干凈
每個目錄結(jié)構(gòu):
addon:插件目錄
application:應(yīng)該模塊目錄
coreframe:核心程序目錄
data:運行時目錄(緩存、上傳文件等)
extend:擴展目錄(保留),為了保持tp5程序擴展的風(fēng)格,如果你習(xí)慣tp5的開發(fā)風(fēng)格,你也可以在這里面擴展
theme:模板目錄(前臺、后臺)
是不是很一目了然,各個功能模塊都很清楚分開存放呀
分層并不是tpframe弄出來的,而是把tp5的分層給充分利用起來,當(dāng)然我這里不是說的程序框架模式,經(jīng)典的還屬MVC,那當(dāng)然還有其它模式,像MVP,MVVM www.cnblogs.com/indream/p/3602348.html ,CBD,ORM等等
我這里要說的是MVC更細化分層,每層的在功能設(shè)計中所起的作用,為什么要這樣設(shè)計等問題
我也看到過CV模式,有部分人就推崇這種簡單直接的模式,其實這種就相當(dāng)于原生PHP再升級一下而已,把邏輯相關(guān)獨立出去,當(dāng)然我想的是他們喜歡這種的目的就是覺得簡單,直接了當(dāng),有人說程序執(zhí)行更快?加載的東西少?
哈哈,如果僅僅是為了速度問題,原生比什么框架都快,不是嗎。所以討論到這個問題你就輸了(別太認真),一個框架好與不好,個人覺得應(yīng)該從如下方面來參考
?可讀性好不好(換一個人能不能快速的入手)
?可維護性好不好
?程序可擴展性好不好
?程序之間耦合度是否達到盡可能的低
?重復(fù)代碼是否將到最低
......
說了這些我就會問,原生PHP能做到上面的某些方面么,就拿CV模式來說,如果一個邏輯代碼成千上萬行了,改起來估計難度很大吧,動不動出錯了怎么辦,要在中間加一塊功能,換一個人估計都不敢改了。
那么TPFrame框架的分層結(jié)構(gòu)是怎么樣的呢?我先來說一個公司的事務(wù)處理流程
首先是公司的前臺人員,如果有外來人員(瀏覽器),簡單的事情(不進行數(shù)據(jù)處理)直接回復(fù)就可以,如果要設(shè)計到公司重要的事情,她們便把事情通報給相應(yīng)的部門(對應(yīng)的部門,為客戶服務(wù)的)來處理,每個部門處理重要事情總得要領(lǐng)導(dǎo)決策的吧(最終數(shù)據(jù)處理),然后再原路返回,再由前臺人員把反饋結(jié)果給外來人員(瀏覽器),所以就得到了如下分層結(jié)構(gòu)
1)、controller:控制層,控制轉(zhuǎn)發(fā),相當(dāng)于前臺
2)、service:服務(wù)層,為數(shù)據(jù)處理而服務(wù)器,出問題,回滾,數(shù)據(jù)攔截,驗證等,相當(dāng)于各部門
3)、logic:邏輯層,數(shù)據(jù)處理層(CURD操作),相當(dāng)于領(lǐng)導(dǎo)
4)、view:視圖層,這便是最張呈現(xiàn)給客戶的方案
當(dāng)然為了數(shù)據(jù)的更細化,規(guī)范化,還少不了其它的層
5)、model:模型層,數(shù)據(jù)自動處理(數(shù)據(jù)自動完成、數(shù)據(jù)修改),其實真正的數(shù)據(jù)處理層就是它
6)、validate:驗證層,數(shù)據(jù)在進行CURD之前的驗證操作可交給它
你們可去看thinkphp文檔,這些層都是有的,只是它介紹的不是那么的詳細。
當(dāng)然有人說了,這樣開發(fā)起來好復(fù)雜哦,當(dāng)然,對于一些最終都是很簡單的項目,可以認為它是有點復(fù)雜的,但對于 一個長期項目,以后要擴展,升級,維護的項目,這種分層絕對是有必要的。當(dāng)然這樣分層也減少了代碼之間的耦合度。
現(xiàn)在的很多項目需求都是各端都要求(app\mobile\pc),而在開發(fā)的時候,分三批人分別開發(fā)也好,一批人按計劃開發(fā)也好,寫好一套再寫一套,還是各寫各的一套。。。我們都知道,不管是app也好,mobile或pc,一個項目,他們的展示數(shù)據(jù)大部分都是相同的,也就是說他們對數(shù)據(jù)處理的大部分功能都是相同的,倘若是分開寫的話,就會有大量的代碼重復(fù),以后升級三端都是加,改也要全改,維護起來更是老火。
那么針對這種tpframe給出來的解決方案(建議):
1)、邏輯共用(放公共模塊),當(dāng)然除非你肯定這個功能只有這個模塊要使用,你就可以寫在當(dāng)前模塊里面
2)、服務(wù)層各模塊,因為模塊(部門)對數(shù)據(jù)的處理可能不一樣(領(lǐng)導(dǎo)下達的任務(wù)),例如app可能要規(guī)范一定的數(shù)據(jù),返回數(shù)據(jù)為json格式 ,而pc則不一樣
3)、控制器各模板,因為不同端的入口可能不一樣
這里主要在邏輯層,因為它是最重要的,也是處理比較頻繁的,它共用后,以后維護,升級都方便了。
用過微擎系統(tǒng)的人肯定就知道,它的系統(tǒng)是通過插件的形式過行一步一步的擴展的,而這些插件是完全獨立的,這樣便可以以插件的形式對系統(tǒng)進行任意功能的擴展了,但我發(fā)現(xiàn)它的插件里面有大量重要的代碼,幾個大的插件下來,動則幾百M,大則幾G,太臃腫。
tpframe同樣實現(xiàn)了插件擴展系統(tǒng)的功能,而且進行了升級,各插件大量重復(fù)的功能模塊可獨立出來,每個功能模塊都可以插件的方式進行開發(fā)
tpframe插件分類:
1)、行為插件
該插件開發(fā)好后,只須要在須要顯示的地方放置鉤子即可,以后只須要在后臺開啟與關(guān)閉來控制。
好處:鉤子放置可以在未開發(fā)插件功能前放置,以后須要的時候再開發(fā)也可以;在不改變前端代碼的情況下可自由開發(fā)插件
例如:編輯器插件、登錄插件
2)、模塊插件
該插件類似于thinkphp5的一個單獨模塊功能,它可以是獨立的,有自己的數(shù)據(jù)管理功能
例如:cms插件、短信插件
3)、行為模塊插件
它是行為插件與模塊插件的組合
也就是說它也可以放置鉤子,同樣也有后臺數(shù)據(jù)管理功能
例如:幻燈片插件
插件可簡單的進行安裝與卸載
OK ,這就是tpframe開發(fā)網(wǎng)站的一些優(yōu)點吧,再次說明它不是cms系統(tǒng),它是thinkplhp5的升級版框架;如果你覺得不錯,歡迎下載使用,開源免費的哦;如果你有獨到的見解,歡迎留言
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。