999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于MVC模式下的開發框架建設與改進

2017-06-07 21:12:41余楊奎
海峽科技與產業 2017年5期

余楊奎

摘 要:計算機網絡迅速發展,Web成為人們日常生活中一個重要平臺,在網站上人們除了可以獲得諸多最新資訊,還可以在線購物、投資理財以及檔案管理等;企業也對Web系統更加依賴,因而web系統的開發備受人們關注,而PHP在Web開發中占據著重要地位。目前,傳統的php開發模式把數據層代碼、HTML表示層代碼混合,無法適應系統開發的需求。本文結合信融天下互聯網金融P2P網貸系統和湛江電大學生干部數字化檔案系統的實現,對基于MVC設計模式的PHP實現—THINKPHP框架建設和改進,可以為PHP的開發提供了一個Web的應用程序框架,從開發框架上將Web應用程序進行分離,即表示層、業務邏輯層和數據訪問層代碼完全分開,并且可以在框架上為數據訪問設置模型,提高了Web應用程序開發效率,使其可靠性、可擴展性、可維護性等特點得到增強。關鍵詞:MVC設計模式;PHP;開發框架

0 引言

隨著互聯網迅猛發展,使得動態網站建設要求更高,在網站開發方式上傳統的模式已經無法滿足人們的需要,MVC模式對這個問題進行來了很好的解決[1]。MVC作為一種開發模式在解決大型Web項目問題上發揮了重要作用。PHP是一種專業的網站的開發語言,然而現有的PHP開發模式尚未有成熟、統一的規范,系統水平的高低取決于開發人員的專業素質及經驗等,已經無法滿足人們在開發效率、可擴展性、可靠性及可維護性等方面快速房展的需求[2]。因而把框架機制引入PHP的開發成為人們關注的重點。

1 MVC設計模式

1.1 MVC設計模式在Web中的應用

MVC(Model-View-Controller)把數據處理、數據表示及程序輸入輸出控制進行分離,對不同部分對象間的通信方式進行了描述,使其不受其它數據模型及其方法的影響,從而讓程序結構更加清晰并具有靈活性[3]。MVC把應用程序的輸入、輸出、處理強行分離,MVC的應用程序分為模型、控制器及視圖三個部件[4]。MVC組件的功能及關系如圖1所示。

Web應用程序從傳統意義上來說一般都是由ASP/PHP進行創建的。它們把數據層代碼、HTML表示層代碼混合,即便開發者經驗豐富、水平較高,從表示層把數據分離也具有一定的困難[5]。MVC把它們從根本上進行了強制分離,雖然MVC的構造工作量變大,但仍就有諸多優點。其一,具有低耦合性。視圖層、業務層分離,視圖層代碼更改不需要對模型、控制器代碼進行修改。同樣,改變業務流程或者規則只要對MVC的模型改動就可以,不需要更改視圖層代碼。模型和控制器、視圖是分離的,因而應用程序的數據層及業務規則改變十分容易。其二,具有高重用性、可適用性。科學技術水平不斷提高,訪問應用程序的方式變得多種多樣。同樣一個服務器端的代碼MVC模式可以讓多種視圖進行訪問如Web瀏覽器等。模式只能夠對數據未格式化的部分進行返回,因而為不同界面的使用提供了便利。其三,具有快速開發的能力,MVC模式可以讓界面設計人員對表現形式更加關注,程序員對開發業務邏輯更加重視,使系統的前端、后端同時開發,使系統開發時間大為縮短。其四,具有可維護性。視圖層、業務邏輯層進行分離,使得它們之間聯系只能通過接口,任何部分內部都不會對其他部分產生影響,從而使Web應用具有可維護性。其五,為軟件工程化管理提供了便利。不同層可各司其職,一個層面的應用不同但也有某些相同特征,為軟件工程化管理提供了便利。

1.2 MVC設計模式的PHP實現

PHP對象在服務器端不能跨頁面存在,所有PHP實際上是沒有辦法實現傳統的MVC架構的,其問題主要在模型上得到體現,如在Java中,數據模型是獨立的,不同于業務邏輯、表現邏輯等,它可以在服務器端跨頁面存在,JavaBean 就是在這個方面發揮作用[6]。PHP進程在內存中不能長期存在,只能在PHP頁面剛剛執行時創建,頁面執行結束,則該進程已經結束,基于這種情況,模型不能進行直接實現。

因PHP語言跨頁面無法存在,PHP開發框架中使用被動MVC更為適合。在被動MVC模式上,模型身處MVC結構下卻不知。也就是說模型是一個普通的對象,和MVC中的其他部分是沒有關聯的。這樣的話,模型就不用再跨頁面存在,改變了使用MVC導致的效率低下現象。

被動MVC模式和傳統意義上的主動MVC模式不同,模型是一個簡單的獨立的對象,因而自身的改變不能傳達給視圖;視圖也無法對模型的更新作出訂閱及監視等。視圖只能夠對控制器傳送的數據進行使用或者在得到控制器通知之后再去模型進行最新數據的提取。所以被動MVC模式下,控制器還要把模型更新之后的數據傳送給視圖,因而在設計上相較于主動MVC更加困難。

2 基于MVC設計模式的開發框架建設與改進

2.1 框架入口設計

傳統的Web應用程序中,一般是以頁面或者文件為基礎的,接入模式一般采取多點接入。這種接入模式可以讓用戶對系統的文件進行直接訪問,并且這些文件可以對用戶的請求進行處理并把這些處理的結果反應給用戶[7]。一個系統請求入口就有很多。這種接入方式給用戶顯示的接口非常多,容易帶來安全隱患,對全局的處理、優化等起了不利影響。

在MVC設計模式上實現的THINKPHP框架,可以實現傳統的多點接入模式,同樣也可以進行配置,設置成為單點接入模式。

單點接入模式把Web應用應用程序的全部請求都集中到一個腳本文件即所有的HTTP請求都由入口文件統一進行接受。用戶和系統進行交互的入口只有這一個。這種接入模式具有許多優點,其一,方便全局處理,如對數據進行安全監測等。其二,可以使程序結構更加清晰,方便進行管理。入口進行集中控制,程序人員只需要負責開發自己的模塊就可以,們不需要對程序運行進行協調。其三,保證安全,采用單點入口模式,只開放需要開放的模塊,模塊的訪問地址都是同一個php文件,用戶難以辨別,可以保證系統的安全性。另外,單點接入也使系統的一些耦合缺陷不對用戶進行開放。相對于多點接入模式來講,多點模式采用不同的php文件訪問web,URL相對簡單整潔,但是不方便同一控制,即便可以使用公用配置文件,倘若項目太大,公用配置也不是好的解決方案。

2.2 控制器設計

在MVC設計模式中,控制器主要作用是負責接受用戶輸入的數據并調用模型和視圖功能去完成用戶提出的需求。當用戶通過web頁面中的超鏈接和發送HTML表單時,控制器本身不做任何處理,也不會輸出任何東西。它只接受請求并決定調用哪個模型構件去處理請求,然后決定用哪個視圖來顯示模型處理返回的結果[8]。

THINKPHP的控制器層由核心控制器和業務控制器組成,核心控制器由系統內部的App類完成,負責應用(包括模塊和操作)的調度控制,包括HTTP請求攔截和轉發、加載配置等;業務控制器則由用戶定義的Action類或者其他控制器類完成。關鍵代碼如下:

if(defined('GROUP_NAME')){

if(is_file(CONF_PATH.GROUP_NAME.'/config.php'))

C(include CONF_PATH.GROUP_NAME.'/config.php');// 加載分組配置文件

if(is_file(COMMON_PATH.GROUP_NAME.'/function.php'))

include COMMON_PATH.GROUP_NAME.'/function.php';// 加載分組函數文件

}

業務控制器把客戶請求和業務邏輯分開,業務控制器是由用戶自定義的Action.php文件來實現的,業務控制器全部由Action類派生而來,繼承了所有Action類的方法,把數據傳送給視圖的抽象方法是$this->display。關鍵代碼如下:

class Abstract extends Action {

public function index(){

$this->display();

}

}

2.3 數據操作

PHP支持的數據庫眾多,典型的數據庫就是 MySql,對于接口支持不具有統一性[9]。

THINKPHP框架對數據庫增刪改操作進行了封裝,簡化了數據庫操作,使得開發人員不需要學習SQL語句的相關語法,只需使用GetLastSql()指令將需要操作的SQL語句輸出到瀏覽器調整即可。開發人員可以有更多的精力用在系統業務邏輯上,不再考慮SQL的語法。進行簡單封裝還降低的程序的書寫錯誤,降低了調試出錯概率。

2.4 視圖技術

在THINKPHP中,利用視圖模板技術把數據層、HTML表示層代碼進行分離。Web服務器接收URL請求之后,首先需要確認的是不是第一次對URL進行請求,第一次請求的URL,首先對模板進行調用,判斷模版主題,然后再由控制器代碼等進行編譯,最后用戶視圖生成數據并輸出;不是第一次則在已具有的用戶視圖上進行直接定位,也要判斷模版主題,這種請求節省解析以及讀取的時間。框架會使系統偽靜態化,考慮使用rewrite篩選器完成。加快了程序的運行速度,提高了效率。關鍵代碼如下:

function isMobile() {

// 如果有HTTP_X_WAP_PROFILE則一定是移動設備

if (isset ($_SERVER['HTTP_X_WAP_PROFILE'])){

return true;

}

return false;

}

$info=isMobile();

if($info){ $theme = 'phone'; //手機模板

}else{$theme = 'default'; //默認模板

}

3 結語

社會不斷進步,互聯網在全球范圍內普及,網絡應用開發技術發展迅猛,Web應用在人們的生活、工作中產生了較大的影響,許多的信息、數據庫系統等逐漸轉移到互聯網。人們日常生活和Web應用緊密相關。但目前Web應用程序的開發已經不能適應Web應用增強的需求,為了提高Web應用程序的開發效率,并促使其可靠性、可擴展性、可維護性的提高,Web應用程序開發員引入了框架,提高了應用程序開發的質量和效率。本文結合信融天下互聯網金融P2P網貸系統和湛江電大學生干部數字化檔案系統的實現,基于MVC設計模式對PHP快速開發框架進行分析研究,提出了MVC設計模式的PHP實現即THINKPHP框架,THINKPHP框架把用戶界面、業務邏輯進行強制分離,使系統開發設計框架更加清晰并為其提供了改進方法。

本文系2015年度湛江市科學技術局重大科技專項“信融天下互聯網金融P2P網貸系統研發及平臺運營”(項目編號:15A102)、2015年度湛江市廣播電視大學系統科研項目“基于市級電大學生干部數字化檔案系統的研究”(立項編號:X201505)的階段性成果。

主站蜘蛛池模板: 毛片网站在线看| 久久网欧美| 精品夜恋影院亚洲欧洲| 亚洲精品国产综合99| 白浆视频在线观看| AV网站中文| 国产H片无码不卡在线视频| 99视频国产精品| 国产婬乱a一级毛片多女| 国产日韩精品一区在线不卡 | 久久精品国产91久久综合麻豆自制| 国产女人水多毛片18| 亚洲不卡影院| 国产自视频| 国产一区二区丝袜高跟鞋| 性激烈欧美三级在线播放| a级毛片免费在线观看| 久久美女精品| 99热这里只有精品2| 国产一级裸网站| 中文字幕 91| 国产精品第5页| 亚洲天堂视频网站| 午夜欧美在线| 91精品aⅴ无码中文字字幕蜜桃 | jizz亚洲高清在线观看| 亚洲小视频网站| jijzzizz老师出水喷水喷出| 67194在线午夜亚洲| 国产精品亚洲五月天高清| 久久国产精品电影| 91精品综合| 一区二区三区成人| 91视频区| 亚洲综合九九| 99久久精品视香蕉蕉| 中文字幕亚洲乱码熟女1区2区| 农村乱人伦一区二区| 久久亚洲AⅤ无码精品午夜麻豆| 97色婷婷成人综合在线观看| 超清无码熟妇人妻AV在线绿巨人| 国产理论精品| 激情无码视频在线看| 亚洲无码精品在线播放| 一级爱做片免费观看久久| 九色视频一区| 久久国产高清视频| 国产精品无码一二三视频| 成·人免费午夜无码视频在线观看| 91精品视频在线播放| www欧美在线观看| 久草视频一区| 无码内射中文字幕岛国片| 色有码无码视频| 亚洲欧美日韩成人在线| 性69交片免费看| 免费人成视网站在线不卡| 国产精选小视频在线观看| 91久久国产热精品免费| 99久久精品无码专区免费| 欧美视频在线不卡| 国产一二视频| 免费看一级毛片波多结衣| 亚洲大尺度在线| 欧美激情视频一区| AV无码无在线观看免费| 色九九视频| 国产精品福利尤物youwu| 国产一区二区三区精品久久呦| 日韩欧美中文在线| 亚洲三级成人| a级毛片网| 成年午夜精品久久精品| 欧美国产精品拍自| 六月婷婷激情综合| 91亚洲免费视频| 国产欧美精品一区二区| 日韩免费中文字幕| 99久久国产精品无码| 久久一色本道亚洲| 久久精品亚洲专区| 中文字幕在线播放不卡|