透析thinkphp5升級(jí)版開發(fā)框架tpframe

這里將全面的介紹這個(gè)框架給我們開發(fā)帶來的好處,讓你們對(duì)它有更深層次的認(rèn)識(shí),喜歡或不喜歡的,歡迎大家前來留言討論

成都創(chuàng)新互聯(lián)始終堅(jiān)持【策劃先行,效果至上】的經(jīng)營(yíng)理念,通過多達(dá)10年累計(jì)超上千家客戶的網(wǎng)站建設(shè)總結(jié)了一套系統(tǒng)有效的營(yíng)銷推廣解決方案,現(xiàn)已廣泛運(yùn)用于各行各業(yè)的客戶,其中包括:茶藝設(shè)計(jì)等企業(yè),備受客戶表揚(yáng)。

一、目錄層次結(jié)構(gòu)

現(xiàn)在很多的項(xiàng)目,特別是大一點(diǎn)的項(xiàng)目里面,都會(huì)有很多的人參與,要進(jìn)行程序查詢找、修改或是升級(jí)擴(kuò)展的時(shí)候,目錄結(jié)構(gòu)一目了然就顯得很重要了,更重要的是后面的人來接手的話,目錄結(jié)構(gòu)不清楚,程序結(jié)構(gòu)很亂的話,那估計(jì)接手的人只有哭了

下面就是tpframe的框架目錄結(jié)構(gòu),是不是很干凈

透析thinkphp5升級(jí)版開發(fā)框架tpframe

每個(gè)目錄結(jié)構(gòu):

addon:插件目錄

application:應(yīng)該模塊目錄

coreframe:核心程序目錄

data:運(yùn)行時(shí)目錄(緩存、上傳文件等)

extend:擴(kuò)展目錄(保留),為了保持tp5程序擴(kuò)展的風(fēng)格,如果你習(xí)慣tp5的開發(fā)風(fēng)格,你也可以在這里面擴(kuò)展

theme:模板目錄(前臺(tái)、后臺(tái))

是不是很一目了然,各個(gè)功能模塊都很清楚分開存放呀

二、程序分層結(jié)構(gòu)

分層并不是tpframe弄出來的,而是把tp5的分層給充分利用起來,當(dāng)然我這里不是說的程序框架模式,經(jīng)典的還屬M(fèi)VC,那當(dāng)然還有其它模式,像MVP,MVVM www.cnblogs.com/indream/p/3602348.html ,CBD,ORM等等

我這里要說的是MVC更細(xì)化分層,每層的在功能設(shè)計(jì)中所起的作用,為什么要這樣設(shè)計(jì)等問題

我也看到過CV模式,有部分人就推崇這種簡(jiǎn)單直接的模式,其實(shí)這種就相當(dāng)于原生PHP再升級(jí)一下而已,把邏輯相關(guān)獨(dú)立出去,當(dāng)然我想的是他們喜歡這種的目的就是覺得簡(jiǎn)單,直接了當(dāng),有人說程序執(zhí)行更快?加載的東西少?

哈哈,如果僅僅是為了速度問題,原生比什么框架都快,不是嗎。所以討論到這個(gè)問題你就輸了(別太認(rèn)真),一個(gè)框架好與不好,個(gè)人覺得應(yīng)該從如下方面來參考

?可讀性好不好(換一個(gè)人能不能快速的入手)

?可維護(hù)性好不好

?程序可擴(kuò)展性好不好

?程序之間耦合度是否達(dá)到盡可能的低

?重復(fù)代碼是否將到最低

......

說了這些我就會(huì)問,原生PHP能做到上面的某些方面么,就拿CV模式來說,如果一個(gè)邏輯代碼成千上萬行了,改起來估計(jì)難度很大吧,動(dòng)不動(dòng)出錯(cuò)了怎么辦,要在中間加一塊功能,換一個(gè)人估計(jì)都不敢改了。

那么TPFrame框架的分層結(jié)構(gòu)是怎么樣的呢?我先來說一個(gè)公司的事務(wù)處理流程

首先是公司的前臺(tái)人員,如果有外來人員(瀏覽器),簡(jiǎn)單的事情(不進(jìn)行數(shù)據(jù)處理)直接回復(fù)就可以,如果要設(shè)計(jì)到公司重要的事情,她們便把事情通報(bào)給相應(yīng)的部門(對(duì)應(yīng)的部門,為客戶服務(wù)的)來處理,每個(gè)部門處理重要事情總得要領(lǐng)導(dǎo)決策的吧(最終數(shù)據(jù)處理),然后再原路返回,再由前臺(tái)人員把反饋結(jié)果給外來人員(瀏覽器),所以就得到了如下分層結(jié)構(gòu)

1)、controller:控制層,控制轉(zhuǎn)發(fā),相當(dāng)于前臺(tái)

2)、service:服務(wù)層,為數(shù)據(jù)處理而服務(wù)器,出問題,回滾,數(shù)據(jù)攔截,驗(yàn)證等,相當(dāng)于各部門

3)、logic:邏輯層,數(shù)據(jù)處理層(CURD操作),相當(dāng)于領(lǐng)導(dǎo)

4)、view:視圖層,這便是最張呈現(xiàn)給客戶的方案

當(dāng)然為了數(shù)據(jù)的更細(xì)化,規(guī)范化,還少不了其它的層

5)、model:模型層,數(shù)據(jù)自動(dòng)處理(數(shù)據(jù)自動(dòng)完成、數(shù)據(jù)修改),其實(shí)真正的數(shù)據(jù)處理層就是它

6)、validate:驗(yàn)證層,數(shù)據(jù)在進(jìn)行CURD之前的驗(yàn)證操作可交給它

你們可去看thinkphp文檔,這些層都是有的,只是它介紹的不是那么的詳細(xì)。

當(dāng)然有人說了,這樣開發(fā)起來好復(fù)雜哦,當(dāng)然,對(duì)于一些最終都是很簡(jiǎn)單的項(xiàng)目,可以認(rèn)為它是有點(diǎn)復(fù)雜的,但對(duì)于 一個(gè)長(zhǎng)期項(xiàng)目,以后要擴(kuò)展,升級(jí),維護(hù)的項(xiàng)目,這種分層絕對(duì)是有必要的。當(dāng)然這樣分層也減少了代碼之間的耦合度。

三、程序代碼結(jié)構(gòu)

現(xiàn)在的很多項(xiàng)目需求都是各端都要求(app\mobile\pc),而在開發(fā)的時(shí)候,分三批人分別開發(fā)也好,一批人按計(jì)劃開發(fā)也好,寫好一套再寫一套,還是各寫各的一套。。。我們都知道,不管是app也好,mobile或pc,一個(gè)項(xiàng)目,他們的展示數(shù)據(jù)大部分都是相同的,也就是說他們對(duì)數(shù)據(jù)處理的大部分功能都是相同的,倘若是分開寫的話,就會(huì)有大量的代碼重復(fù),以后升級(jí)三端都是加,改也要全改,維護(hù)起來更是老火。

那么針對(duì)這種tpframe給出來的解決方案(建議):

1)、邏輯共用(放公共模塊),當(dāng)然除非你肯定這個(gè)功能只有這個(gè)模塊要使用,你就可以寫在當(dāng)前模塊里面

2)、服務(wù)層各模塊,因?yàn)槟K(部門)對(duì)數(shù)據(jù)的處理可能不一樣(領(lǐng)導(dǎo)下達(dá)的任務(wù)),例如app可能要規(guī)范一定的數(shù)據(jù),返回?cái)?shù)據(jù)為json格式 ,而pc則不一樣

3)、控制器各模板,因?yàn)椴煌说娜肟诳赡懿灰粯?/p>

這里主要在邏輯層,因?yàn)樗亲钪匾?,也是處理比較頻繁的,它共用后,以后維護(hù),升級(jí)都方便了。

四、程序擴(kuò)展方式

用過微擎系統(tǒng)的人肯定就知道,它的系統(tǒng)是通過插件的形式過行一步一步的擴(kuò)展的,而這些插件是完全獨(dú)立的,這樣便可以以插件的形式對(duì)系統(tǒng)進(jìn)行任意功能的擴(kuò)展了,但我發(fā)現(xiàn)它的插件里面有大量重要的代碼,幾個(gè)大的插件下來,動(dòng)則幾百M(fèi),大則幾G,太臃腫。

tpframe同樣實(shí)現(xiàn)了插件擴(kuò)展系統(tǒng)的功能,而且進(jìn)行了升級(jí),各插件大量重復(fù)的功能模塊可獨(dú)立出來,每個(gè)功能模塊都可以插件的方式進(jìn)行開發(fā)

透析thinkphp5升級(jí)版開發(fā)框架tpframe

tpframe插件分類:

1)、行為插件

該插件開發(fā)好后,只須要在須要顯示的地方放置鉤子即可,以后只須要在后臺(tái)開啟與關(guān)閉來控制。

好處:鉤子放置可以在未開發(fā)插件功能前放置,以后須要的時(shí)候再開發(fā)也可以;在不改變前端代碼的情況下可自由開發(fā)插件

例如:編輯器插件、登錄插件

2)、模塊插件

該插件類似于thinkphp5的一個(gè)單獨(dú)模塊功能,它可以是獨(dú)立的,有自己的數(shù)據(jù)管理功能

例如:cms插件、短信插件

3)、行為模塊插件

它是行為插件與模塊插件的組合

也就是說它也可以放置鉤子,同樣也有后臺(tái)數(shù)據(jù)管理功能

例如:幻燈片插件

插件可簡(jiǎn)單的進(jìn)行安裝與卸載

OK ,這就是tpframe開發(fā)網(wǎng)站的一些優(yōu)點(diǎn)吧,再次說明它不是cms系統(tǒng),它是thinkplhp5的升級(jí)版框架;如果你覺得不錯(cuò),歡迎下載使用,開源免費(fèi)的哦;如果你有獨(dú)到的見解,歡迎留言

網(wǎng)站標(biāo)題:透析thinkphp5升級(jí)版開發(fā)框架tpframe
網(wǎng)址分享:http://bm7419.com/article24/isjoce.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)品牌網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈網(wǎng)站營(yíng)銷、搜索引擎優(yōu)化云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計(jì)公司