91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

透析thinkphp5升級版開發框架tpframe

發布時間:2020-07-17 19:23:02 來源:網絡 閱讀:5674 作者:過來瞧一瞧 欄目:web開發

這里將全面的介紹這個框架給我們開發帶來的好處,讓你們對它有更深層次的認識,喜歡或不喜歡的,歡迎大家前來留言討論

一、目錄層次結構

現在很多的項目,特別是大一點的項目里面,都會有很多的人參與,要進行程序查詢找、修改或是升級擴展的時候,目錄結構一目了然就顯得很重要了,更重要的是后面的人來接手的話,目錄結構不清楚,程序結構很亂的話,那估計接手的人只有哭了

下面就是tpframe的框架目錄結構,是不是很干凈

透析thinkphp5升級版開發框架tpframe

每個目錄結構:

addon:插件目錄

application:應該模塊目錄

coreframe:核心程序目錄

data:運行時目錄(緩存、上傳文件等)

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

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

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

二、程序分層結構

分層并不是tpframe弄出來的,而是把tp5的分層給充分利用起來,當然我這里不是說的程序框架模式,經典的還屬MVC,那當然還有其它模式,像MVP,MVVM www.cnblogs.com/indream/p/3602348.html ,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同樣實現了插件擴展系統的功能,而且進行了升級,各插件大量重復的功能模塊可獨立出來,每個功能模塊都可以插件的方式進行開發

透析thinkphp5升級版開發框架tpframe

tpframe插件分類:

1)、行為插件

該插件開發好后,只須要在須要顯示的地方放置鉤子即可,以后只須要在后臺開啟與關閉來控制。

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

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

2)、模塊插件

該插件類似于thinkphp5的一個單獨模塊功能,它可以是獨立的,有自己的數據管理功能

例如:cms插件、短信插件

3)、行為模塊插件

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

也就是說它也可以放置鉤子,同樣也有后臺數據管理功能

例如:幻燈片插件

插件可簡單的進行安裝與卸載

OK ,這就是tpframe開發網站的一些優點吧,再次說明它不是cms系統,它是thinkplhp5的升級版框架;如果你覺得不錯,歡迎下載使用,開源免費的哦;如果你有獨到的見解,歡迎留言

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

梓潼县| 房产| 庆城县| 桃园县| 孟津县| 乡城县| 陇西县| 天柱县| 临泉县| 宁城县| 资讯| 交城县| 仁怀市| 闸北区| 南宫市| 浪卡子县| 东明县| 镇巴县| 闵行区| 会东县| 新巴尔虎左旗| 安塞县| 晋中市| 绍兴县| 梓潼县| 凤庆县| 横山县| 工布江达县| 高淳县| 辽阳市| 法库县| 崇信县| 青海省| 天门市| 梅河口市| 安国市| 白河县| 北碚区| 克什克腾旗| 芜湖市| 平和县|