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

?

一種基于PHP實現(xiàn)MVC模式的方法

2020-11-02 02:36:18高麗
電腦知識與技術(shù) 2020年26期
關(guān)鍵詞:實現(xiàn)方法

高麗

摘要:為了提高軟件開發(fā)中代碼的質(zhì)量、效率,框架結(jié)構(gòu)在Web應(yīng)用開發(fā)中已經(jīng)被廣泛地應(yīng)用。MVC模式將業(yè)務(wù)邏輯、數(shù)據(jù)、顯示進(jìn)行分離,極大提高Web應(yīng)用程序的可用性和可維護(hù)性。該文通過PHP語言實現(xiàn)MVC模式。

關(guān)鍵詞:PHP;MVC模式;實現(xiàn)方法

中圖分類號:TP3? ? ? ? 文獻(xiàn)標(biāo)識碼:A

文章編號:1009-3044(2020)26-0203-02

開發(fā)互聯(lián)網(wǎng)中,采用基于B/S模式實現(xiàn)Web應(yīng)用程序,用戶界面通過瀏覽器實現(xiàn),系統(tǒng)功能集中到服務(wù)器上。PHP具有跨平臺性的多用途腳本語言,因為編輯簡單、實用性強(qiáng)、業(yè)務(wù)框架多等特點成為當(dāng)前的適合Web開發(fā)的熱門語言。在PHP中使用MVC越來越流行了,尤其一些開源的框架中,有利于Web應(yīng)用程序的管理和維護(hù),提高開發(fā)效率。

1 MVC模式

MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設(shè)計典范,用一種業(yè)務(wù)邏輯、數(shù)據(jù)、界面顯示分離的方法組織代碼,將業(yè)務(wù)邏輯聚集到一個部件里面,在改進(jìn)和個性化定制界面及用戶交互的同時,不需要重新編寫業(yè)務(wù)邏輯。MVC被獨特地發(fā)展起來用于映射傳統(tǒng)的輸入、處理和輸出功能在一個邏輯的圖形化用戶界面的結(jié)構(gòu)中。MVC工作原理如圖1所示。

其中Model(模型)是應(yīng)用程序中用于處理應(yīng)用程序數(shù)據(jù)邏輯的部分,通常模型對象負(fù)責(zé)在數(shù)據(jù)庫中存取數(shù)據(jù)。View(視圖)是應(yīng)用程序中處理數(shù)據(jù)顯示的部分,依據(jù)模型數(shù)據(jù)而創(chuàng)建。Controller(控制器)是應(yīng)用程序中處理用戶交互的部分,主要負(fù)責(zé)從視圖讀取數(shù)據(jù),控制用戶輸入,并向模型發(fā)送數(shù)據(jù)。MVC模式使得代碼分層、分類,開發(fā)和設(shè)計的工作相對獨立。

2 MVC框架的分析與實現(xiàn)

2.1 MVC在PHP中的功能

Model(模型),主要實現(xiàn)程序的應(yīng)用功能和邏輯,在PHP中主要負(fù)責(zé)數(shù)據(jù)的生成和管理;view(視圖),負(fù)責(zé)輸出,處理是怎樣調(diào)用模板以及資源文件;controller(控制器),負(fù)責(zé)轉(zhuǎn)發(fā)請求并處理,決定調(diào)用的視圖和使用的數(shù)據(jù)。

2.2 MVC在PHP中的實現(xiàn)

為了解決一類共同問題總結(jié)出來的一套可復(fù)用的解決方案,這是軟件設(shè)計模式產(chǎn)生的初衷。不管是客戶端還是移動端,MVC的分層設(shè)計模式解決了軟件開發(fā)中的可復(fù)用、單一職責(zé)、解耦的問題,PHP語言中的MVC設(shè)置模式也是如此。在MVC基本原理模型中展示了模型、視圖與控制器的關(guān)系與作用,但是在實際開發(fā)設(shè)計時,還需要設(shè)計其基于PHP的實際模型,繼而真實的在Web程序開發(fā)時應(yīng)用MVC模式,基于PHP的MVC工作原理如圖2所示。

2.2.1 URL訪問方式:單一入口

模式采用單一入口,約定請求頁面時的URL,利用它來確定文件在系統(tǒng)中的具體位置,從根本上穩(wěn)定系統(tǒng)和提高安全性。單一的入口使得系統(tǒng)更便捷的驗證系統(tǒng)身份,不用單獨分開驗證每一個文件,提高了驗證的效率。同時,只需要在入口文件中修改相應(yīng)的規(guī)定來重寫URL。在實現(xiàn)中,設(shè)定唯一的訪問文件為index.php,如果想要訪問并且得到正確結(jié)果,只能通過這入口文件,其中通過改變參數(shù)來控制訪問的頁面、決定顯示的結(jié)果或者調(diào)用不同的控制器。URL設(shè)置及MVC模式目錄如下圖3-圖4所示。

2.2.2 控制器(Controller)

控制器是連通整個模式的關(guān)鍵,所以它的設(shè)計至關(guān)重要。因為框架模式采用單一入口,用戶的所有信息請求都要從相同的入口進(jìn)入,但實際的數(shù)據(jù)請求由控制器來篩選,并在模型處理完相應(yīng)數(shù)據(jù)后,調(diào)用視圖將回復(fù)數(shù)據(jù)顯示界面,反饋于用戶。實際開發(fā)時,需要調(diào)取配置文件、加載函數(shù)庫及框架模式中心控制等來完成設(shè)置控制器。在這里控制器文件命名為controller.PHP,其關(guān)鍵代碼實現(xiàn)過程如下。

2.2.3 視圖(View)

視圖,即用戶界面。對于程序員來說,視圖按照模型中的設(shè)計信息轉(zhuǎn)換成界面顯示給用戶,在此需要在應(yīng)用程序界面加入一些PHP邏輯處理。在視圖文件view.php中定義了View類,在該類中定義display($output)方法,并在該方法中打印$output的值,用于顯示數(shù)據(jù)。主要代碼如下:

視圖在設(shè)計時,可以根據(jù)不同的請求來調(diào)用不同的視圖類,以不同的形式顯示數(shù)據(jù)信息,但這些請求不是由視圖來處理,它只是顯示數(shù)據(jù)信息。同樣,也存在多個視圖同時在訪問模型,只要信息在該模型中,則會顯示具體內(nèi)容信息,產(chǎn)生視圖。這樣增加了視圖的作用,可以只針對試圖進(jìn)行頁面的設(shè)計。

2.2.4 模型(Model)

模型的功能主要是處理不同信息的請求,配合控制器完成工作。利用面向?qū)ο筮M(jìn)行編碼,模型在一個PHP 應(yīng)用程序中,通常是一個類(或多個)。一般這個類是處理或保存數(shù)據(jù)表。在模型文件model.php中定義了Model類,在該類中定義getData()方法,用于請求數(shù)據(jù)的返回。主要代碼如下:

2.2.5 運行時(Runtime)

在入口文件中定義參數(shù),使得控制器根據(jù)不同的參數(shù)獲取不同的數(shù)據(jù)。控制器中包含需要的視圖和模型文件,根據(jù)模型中定義的對象調(diào)用數(shù)據(jù),再通過視圖對象輸出調(diào)用的數(shù)據(jù)。

3 結(jié)束語

本文利用PHP以一簡單案例闡述了MVC設(shè)計模式的實現(xiàn)方法。MVC是一種優(yōu)秀的設(shè)計模式,代碼更易于理解。如要改變一些信息在顯示界面,只需要修改View層程序,如數(shù)據(jù)庫結(jié)構(gòu)發(fā)生變化,只需要更改Model 層程序。讓基于面向?qū)ο蟮腤eb開發(fā)變得更有效率。

參考文獻(xiàn):

[1] 張睿涵.基于經(jīng)典MVC架構(gòu)的實現(xiàn)Web應(yīng)用系統(tǒng)設(shè)計與實現(xiàn)[J].數(shù)碼世界,2017(4):17-18.

[2] 張偉偉.PHP中MVC模式下類的動態(tài)加載實現(xiàn)[J].電腦知識與技術(shù),2019,15(34):60-61.

[3] 楊婷婷.PHP開發(fā)中MVC模式的應(yīng)用研究[J].淮南職業(yè)技術(shù)學(xué)院學(xué)報,2019,19(2):84-85.

[4] 閆曉亮,焦素云.MVC模式PHP開發(fā)框架[J].長春工業(yè)大學(xué)學(xué)報,2016,37(6):592-596.

【通聯(lián)編輯:代影】

猜你喜歡
實現(xiàn)方法
高職英語教學(xué)價值定位及其實現(xiàn)
東方教育(2016年20期)2017-01-17 21:21:45
淺談業(yè)務(wù)連續(xù)性管理的實現(xiàn)方法
工程地質(zhì)在優(yōu)慕課教學(xué)資源平臺信息化教學(xué)案例
考試周刊(2016年25期)2016-05-26 01:16:33
建筑工程造價信息化管理實現(xiàn)方法探討
小學(xué)信息技術(shù)教育目標(biāo)實現(xiàn)方法
江西教育C(2015年3期)2010-11-18 21:14:37
孟州市| 科技| 万州区| 老河口市| 修水县| 通州区| 卢氏县| 迭部县| 廊坊市| 濮阳市| 孝感市| 潮安县| 集安市| 龙陵县| 卓尼县| 康马县| 六枝特区| 尼木县| 工布江达县| 图木舒克市| 高雄市| 嘉黎县| 安化县| 新邵县| 彰武县| 富民县| 奉贤区| 交口县| 揭阳市| 久治县| 土默特右旗| 华亭县| 高安市| 卓尼县| 利辛县| 景泰县| 新安县| 育儿| 甘洛县| 文山县| 会理县|