国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于MVC的ThinkPHP5框架研究

2020-01-03 10:09李秀珍
現(xiàn)代信息科技 2020年14期
關(guān)鍵詞:框架模型

摘? 要:ThinkPHP5是一款基于MVC三層架構(gòu)的輕量級(jí)Web框架。它在ThinkPHP3.2版本之上重新改進(jìn)了底層架構(gòu),提升了開發(fā)者使用體驗(yàn)。文章依據(jù)MVC三層架構(gòu)思想,對(duì)ThinkPHP5數(shù)據(jù)模型的創(chuàng)建調(diào)用、控制器層前置操作的使用以及視圖層網(wǎng)頁模板布局進(jìn)行了研究,并結(jié)合實(shí)際工作經(jīng)驗(yàn),總結(jié)了ThinkPHP5的優(yōu)缺點(diǎn),提出了ThinkPHP5后續(xù)改進(jìn)措施。

關(guān)鍵詞:MVC;ThinkPHP5;框架;模型

Abstract:Thinkphpp5 is a lightweight Web framework based on MVC three-tier architecture. On the foundation of ThinkPHP3.2,it has improved the underlying architecture and enhanced the developer taste. Based on the idea of MVC three-tier architecture,this paper studies the creation and call of ThinkPHP5 data model,the use of front-end operation of controller layer and the layout of web page template in view layer. Combined with practical work experience,it summarizes the advantages and disadvantages of ThinkPHP5,and puts forward the follow-up improvement measures of ThinkPHP5.

Keywords:MVC;ThinkPHP5;framework;model

0? 引? 言

隨著網(wǎng)絡(luò)的不斷發(fā)展,通過瀏覽器發(fā)布程序日益流行,所以Web開發(fā)的地位不斷提高。PHP作為Web開發(fā)的眾多工具之一,有著得天獨(dú)厚的條件,其既可以和前端代碼一起編寫,又可以后臺(tái)處理數(shù)據(jù),所以PHP一度成為“程序員最喜歡的編程語言”。

Web框架是指Web開發(fā)過程中文件、路由配置、數(shù)據(jù)庫等資源固定的組織形式。ThinkPHP是基于PHP的框架之一,它的模式為開發(fā)人員節(jié)省了重寫代碼的時(shí)間。MVC既是編程思想,也是業(yè)務(wù)邏輯,M(Model)是數(shù)據(jù)層,V(View)是視圖層,C(Controller)控制層,該思想將上述三層進(jìn)行分離,允許單層修改而不影響其他層。

基于MVC的ThinkPHP框架主動(dòng)借鑒其他優(yōu)秀框架的特性,使其自身不斷強(qiáng)大,用戶量也與日俱增。因ThinkPHP是開源社區(qū)代碼,發(fā)現(xiàn)缺點(diǎn)并加以改進(jìn)方能使其長(zhǎng)盛不衰。文章基于上述背景,對(duì)ThinkPHP三層架構(gòu)進(jìn)行了研究,希望對(duì)初學(xué)者有一些幫助。

1? ThinkPHP框架介紹

1.1? ThinkPHP的發(fā)展歷史

ThinkPHP框架(原名FCS),由上海頂想信息科技有限公司開發(fā)和維護(hù),基于MVC三層架構(gòu),遵循Apache 2開源協(xié)議發(fā)布,是為Web應(yīng)用快速開發(fā)而打造的一款輕量級(jí)Web框架。[1]

ThinkPHP5版發(fā)布后,ThinkPHP3.2.2已經(jīng)停止更新。在現(xiàn)階段企業(yè)開發(fā)中,ThinkPHP5應(yīng)用較多,受到較多開發(fā)者的青睞。

1.2? ThinkPHP5框架目錄

Application為應(yīng)用目錄,大部分開發(fā)均在此目錄下。ThinkPHP5支持多模塊,在Application目錄下可以新建其他模塊,如Admin模塊,在Admin里面再新建Controller、Model、View三層架構(gòu)。

Public為公共目錄,該目錄下的Index.php是ThinkPHP5的入口文件,所有訪問均從此文件開始。Config為配置目錄,可以進(jìn)行慣例配置、應(yīng)用配置、應(yīng)用擴(kuò)展配置、應(yīng)用場(chǎng)景配置、模塊配置、模塊擴(kuò)展配置、模塊應(yīng)用配置、動(dòng)態(tài)配置,上述配置優(yōu)先級(jí)依次增大。Runtime為運(yùn)行時(shí)目錄,存放網(wǎng)站運(yùn)行產(chǎn)生的日志以及臨時(shí)文件。Extend為擴(kuò)展目錄,用于存放第三方類庫。ThinkPHP為框架核心文件目錄,此目錄里的Library目錄下的Think文件夾里面的內(nèi)容為ThinkPHP5自帶的類文件,包括Model類、DB類、View類等等。Vendor是Composer安裝過程中生成的目錄,通過Composer安裝的所有類庫都被安裝在這個(gè)目錄中。

2? MVC的概念

MVC的全名是Model-View-Controller,是模型層(Mo- del)-視圖層(View)-控制層(Controller)的縮寫。它是一種基于Web應(yīng)用程序的框架模式,將應(yīng)用程序的輸入、處理和輸出強(qiáng)制分開。[2]

模型層主要負(fù)責(zé)對(duì)數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行CURD操作。視圖層通常根據(jù)模型層的數(shù)據(jù)創(chuàng)建不同用戶的顯示??刂茖痈鶕?jù)視圖層讀取的數(shù)據(jù)控制用戶的輸入。[3]

3? MVC在ThinkPHP5中的應(yīng)用

3.1? Model層

3.1.1? 模型創(chuàng)建

模型是對(duì)實(shí)體的抽象描述,快速直觀地展示出實(shí)體的特征。ThinkPHP5中,一個(gè)模型是數(shù)據(jù)庫里的一個(gè)表的抽象,核心基類庫存放在Model.php文件中[4]。在應(yīng)用模塊下創(chuàng)建模型目錄Model,并在該目錄下創(chuàng)建與數(shù)據(jù)表同名的類文件,在類文件中添加如下代碼(假設(shè)在數(shù)據(jù)庫中存在一個(gè)名為Employee的表,字段為id、name、age、dept,用于存放員工的id、姓名、年齡和部門):

模型創(chuàng)建成功后會(huì)自動(dòng)繼承基類Model中所有的屬性和方法。

3.1.2? 模型調(diào)用

模型可以采用實(shí)例化調(diào)用和靜態(tài)調(diào)用。實(shí)例化調(diào)用即在控制器中創(chuàng)建模型對(duì)象,然后用模型對(duì)象處理相關(guān)業(yè)務(wù)。靜態(tài)調(diào)用是通過靜態(tài)查詢直接將一個(gè)空模型轉(zhuǎn)為數(shù)據(jù)模型,再調(diào)用相關(guān)方法完成數(shù)據(jù)操作。

3.2? 控制層

控制層用于讀取視圖層內(nèi)容、完成用戶輸入、處理數(shù)據(jù)模型。默認(rèn)的訪問控制層為app\index\controller\Index.php[5]。ThinkPHP5的默認(rèn)入口文件即為Index.php文件。在此文件中我們可以利用前置操作來完成對(duì)某些屬性的賦值。前置操作,顧名思義,即在某些函數(shù)執(zhí)行之前需要執(zhí)行的操作。使用該操作,必須要繼承基類Controller,因基類Controller對(duì)該操作進(jìn)行了定義。我們可以在Index.php文件中鍵入以下代碼完成前置操作的定義和使用:

該前置操作除了example1和example3操作外,其他都有效。前置操作存在的根本目的是為了項(xiàng)目規(guī)范、方便擴(kuò)展。

3.3? 視圖層

視圖層主要展示數(shù)據(jù)加載到網(wǎng)頁的效果,所以網(wǎng)頁的模板布局顯得尤為重要。在ThinkPHP5中模板布局有三種方式,分別是全局配置、模板中配置、控制器里配置[6]。

3.3.1? 全局配置

全局配置即在Config文件中開啟全局模板布局,需要通過以下數(shù)組中的鍵值對(duì)進(jìn)行配置:

當(dāng)使用該方式進(jìn)行網(wǎng)頁布局時(shí),模板渲染流程為控制器—>布局模板—>用戶模板。

3.3.2? 模板中配置

使用該方式進(jìn)行模板渲染時(shí),首先需要關(guān)閉全局配置,防止布局配置重復(fù)。然后在View目錄下創(chuàng)建自定義布局文件,最后在模板中使用以下代碼:

3.3.3? 控制器里配置

在控制器里面動(dòng)態(tài)控制模板布局模式,代碼如下:

當(dāng)參數(shù)為true時(shí),采用默認(rèn)布局模板:layout.html;當(dāng)參數(shù)為false時(shí),臨時(shí)關(guān)閉當(dāng)前模板布局;當(dāng)參數(shù)為文件名時(shí),即采用用戶自定義布局模板。

三種布局配置方式,全局配置和控制器里配置是在程序中實(shí)現(xiàn)模板布局,但模板中配置方式僅單純通過模板標(biāo)簽實(shí)現(xiàn)在模板中使用布局,應(yīng)根據(jù)項(xiàng)目的實(shí)際情況選擇采用何種方式。

4? 實(shí)際應(yīng)用

“智慧校園”已經(jīng)成為高校發(fā)展質(zhì)量的重要標(biāo)志之一,而“智慧校園”的體現(xiàn)則是管理與教學(xué)的網(wǎng)絡(luò)化。隨著系統(tǒng)的不斷增多,后臺(tái)維護(hù)工作日益繁瑣,為了能夠簡(jiǎn)化網(wǎng)站模塊維護(hù)流程,作者開發(fā)了與我校校園網(wǎng)相關(guān)的后臺(tái)管理系統(tǒng),因連接校園網(wǎng)需要數(shù)據(jù)對(duì)接,現(xiàn)后臺(tái)管理系統(tǒng)未進(jìn)行實(shí)際應(yīng)用,基于MVC的ThinkPHP5的后臺(tái)管理系統(tǒng)如圖1所示。

在Admin文件中基于MVC三層架構(gòu)設(shè)置的模塊如圖3所示。

通過上圖我們可以看出,模塊定義布局、應(yīng)用定義功能,增加模塊不需要增寫代碼,只需要按照后臺(tái)管理系統(tǒng)的模板添加內(nèi)容即可。所有代碼均被封裝在三層架構(gòu)之中,層內(nèi)代碼的修改不會(huì)影響其他層的數(shù)據(jù)及展示效果。基于MVC三層架構(gòu)的ThinkPHP5使網(wǎng)站易于維護(hù)和擴(kuò)展。

5? 結(jié)? 論

綜合上述ThinkPHP5的研究,基于MVC三層架構(gòu)使得ThinkPHP5減少了對(duì)核心基類庫的依賴,提高了代碼的簡(jiǎn)潔性。但同時(shí)需要注意,ThinkPHP5在數(shù)據(jù)模型的創(chuàng)建和調(diào)用過程中,需要手動(dòng)關(guān)聯(lián)數(shù)據(jù)庫。模板布局模式眾多但不支持繼承,不方便前端網(wǎng)頁輸出。在后續(xù)改進(jìn)中,可以對(duì)模型操作加以改進(jìn),創(chuàng)建自動(dòng)關(guān)聯(lián)數(shù)據(jù)庫模型,模板布局中引入繼承機(jī)制,與前端代碼相結(jié)合,提高代碼復(fù)用性。

參考文獻(xiàn):

[1] 龔翔,張清.基于ThinkPHP的通用CMS系統(tǒng)解決方案 [J].海峽科技與產(chǎn)業(yè),2017(5):101-102.

[2] 劉袁,黃浩光,胡小寶.基于ThinkPHP的校園二手交易平臺(tái)設(shè)計(jì)與實(shí)現(xiàn) [J].計(jì)算機(jī)時(shí)代,2018(10):26-28+31.

[3] 常娜.基于ThinkPHP5框架的博客設(shè)計(jì)與開發(fā) [J].數(shù)字技術(shù)與應(yīng)用,2017(10):171-172.

[4] 鄭俊生,姜敏.一種基于MVC模式Web開發(fā)框架WebWork的研究 [J].福建電腦,2008(08):120+132.

[5] 王昭英.基于MVC設(shè)計(jì)模式的ThinkPHP框架的研究與應(yīng)用 [D].西安:西安建筑科技大學(xué),2010.

[6] 張曉鋒.基于MVC設(shè)計(jì)模式的WEB開發(fā)框架的研究及應(yīng)用 [D].重慶:重慶郵電大學(xué),2007.

作者簡(jiǎn)介:李秀珍(1986.12—),女,漢族,山東濰坊人,助教,碩士研究生,研究方向:計(jì)算機(jī)應(yīng)用、軟件開發(fā)。

猜你喜歡
框架模型
自制空間站模型
框架
淺談框架網(wǎng)頁的學(xué)習(xí)
基于Jmeter對(duì)Node框架性能的測(cè)試研究
模型小覽(二)
圓周運(yùn)動(dòng)與解題模型
離散型隨機(jī)變量分布列的兩法則和三模型
一元一次不等式和一元一次不等式組
甘肃省| 永修县| 镇沅| 和林格尔县| 威远县| 资兴市| 湖北省| 南陵县| 金昌市| 十堰市| 中卫市| 徐汇区| 德江县| 偏关县| 南昌县| 贺兰县| 榆社县| 静海县| 博客| 鹿泉市| 石景山区| 汉沽区| 卓尼县| 贵定县| 上蔡县| 淳安县| 叶城县| 宜都市| 兴海县| 甘肃省| 兰考县| 闽清县| 元氏县| 治县。| 呼和浩特市| 漾濞| 怀远县| 兴山县| 新兴县| 井研县| 恩施市|