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

基于ThinkPHP模型的敏捷WEB開發的應用與實踐

2016-05-30 15:02:34張文勝陳宏
軟件工程 2016年3期

張文勝 陳宏

摘 要:近年來,隨著網絡的普及和WEB應用需求的增加,敏捷的WEB開發的應用成為研究領域的熱點之一。本文以ThinkPHP框架技術為基礎,使用敏捷的WEB開發流程和方法,完成了新聞信息發布系統的整體設計和實現。最后,探討了未來的研究趨勢。

關鍵詞:ThinkPHP;敏捷開發;WEB開發

中圖分類號:TP311 文獻標識碼:A

Abstract:In recent years,with the increasing popularity of the network and WEB application requirements,agile development of the WEB application has become one of the hot research field.This paper is based on the ThinkPHP framework,using the WEB development process and agile methods,completed the design and implementation of information publishing system.Finally,future research trends are discussed.

Keywords:ThinkPHP;agile development;WEB development

1 引言(Introduction)

目前,隨著網絡的普及,網站和Web應用程序開發的需求在不斷擴大,用戶體驗要求也越來越高。如果大家都是需要自我開發一套Web應用系統,則存在成本高、沒有技術力量,維護不方便等問題。所以,如果可以開發一套Web應用系統模型,將一次性源碼交付客戶,讓客戶擁有自己的Web應用平臺,則操作相對簡單,在功能上也可自主靈活修改,這樣就能很好的解決用戶所面臨的問題[1]。

MVC模式(Model-View-Controller)是一種應用廣泛的開發模式,能夠解決團隊開發之間分工協作、協同配合的問題,最優化系統各部件的開發效率。MVC模式將管理系統分為三大部件,分別為模型、視圖和控制器。這三大部件各自分離,但又相互依存,最終形成了一個容易維護、容易擴展、高效運行的管理系統平臺。對于后臺程序員,借助于MVC模式就可以更加專注于業務流程和功能的實現,而不需要太多地涉及頁面與前端。這種分工協作的最終目的是提高開發效率及項目質量[2]。

ThinkPHP框架是為了敏捷WEB應用開發和簡化開發者應用而設計的,是基于MVC結構的開源PHP框架,ThinkPHP一直秉承實用簡潔的設計思想,發揮開源和社區團隊的優勢,不斷優化和改進,在易用性、擴展性和性能方面均有較好表現,已經成長為國內領先和具有影響力的敏捷的WEB應用開發框架,已被大量應用于商業以及門戶級網站的開發[3]。

本文以新聞信息發布系統為例,給出了基于ThinkPHP模型的敏捷WEB開發的設計思想及其開發流程,并使之在目錄結構和代碼上標準化和規范化,提高模塊的復用性,使開發者專注于業務流程的設計,減輕在編寫界面、組織代碼等重復性的工作上的負擔。

2 ThinkPHP MVC設計思想和開發流程(ThinkPHP MVC design and development process)

2.1 ThinkPHP MVC設計思想

ThinkPHP是基于MVC設計模式的,且均支持多層(multi-Layer)設計。ThinkPHP中的MVC分層大致體現為:

模型(Model)層:默認的模型層由Model類構成,但是隨著項目的增大和業務體系的復雜化,單一的模型層很難解決要求,從3.1版本開始推出了多層Model的支持,設計思路很簡單,不同的模型層仍然都繼承自系統的Model類。

控制器(Controller)層:ThinkPHP的控制器層由核心控制器和業務控制器組成,核心控制器由系統內部的App類完成,負責應用(包括模塊和操作)的調度控制,包括HTTP請求攔截和轉發、加載配置等,業務控制器則由用戶定義的Action類完成。3.1版本開始增加了多層業務控制器的支持。

視圖(View)層:由模板和模板引擎組成,在模板中可以直接使用PHP代碼,模板引擎的設計會在后面講述,通過驅動也可以支持其他第三方的模板引擎。

在MVC三層中,ThinkPHP并不依賴M或者V,甚至可以只有C或者只有V,這個在ThinkPHP的設計里面是一個很重要的用戶體驗設計,用戶只需要定義視圖,在沒有C的情況下也能自動識別[4]。

2.2 ThinkPHP開發流程

使用ThinkPHP創建應用的一般開發流程是[5]:

(1)創建數據庫和數據表(沒有數據庫操作可略過)。

(2)項目命名并創建項目入口文件。

(3)完成項目配置。

(4)創建控制器類。

(5)創建模型類,如果只是簡單的模型類可以不必創建。

(6)創建模板文件。

(7)運行和調試。

2.3 ThinkPHP目錄結構各個文件夾的含義[6]

ThinkPHP的目錄結構非常清晰和容易部署,目錄結構的內容和說明如表1所示。

3 基于ThinkPHP模型的敏捷WEB開發的應用(The application of ThinkPHP model of agile development based on WEB)

3.1 應用程序的模型描述

首先,設計一個模型(M),模型的定義由Model類完成,該類完成了基本的CURD、ActiveRecord模式、連貫操作和統計查詢等。Model類位于項目目錄下面的/Lib/Model目錄。

其次,設計控制器(C),應用控制器(核心控制器)和Action控制器都承擔了控制器的角色。核心控制器由系統內部的App類完成,負責應用(包括模塊和操作)的調度控制,包括HTTP請求攔截和轉發、加載配置等,業務控制器則由用戶定義的Action類或者其他控制器類完成。Action控制器位于項目目錄下面的/Lib/Action目錄。

最后,完成視圖設計(V),視圖主要就是指模板文件和模板引擎,模板的實現和框架無關,可以獨立制作和預覽。模板位于項目目錄下面的/Tpl目錄。

模型調用關系描述如圖1所示。

3.2 構建應用程序的結構

在使用應用架構創建應用時,使用統一的命名規范和目錄結構,規定所有類文件都放至Lib目錄下。在該目錄下,可根據分別建立Action、Model、Behavior和Widget等四個子目錄。項目文件夾的命名約定見2.3節,這樣就把對視圖界面、交互邏輯和數據的處理清晰地分開,便于對應用進行管理和優化。目錄結構如圖2所示。

3.3 MVC各個模塊的實現

視圖由View類和模板文件兩部分組成。Action控制器直接和View視圖類交互,View類把控制器傳來的變量展現出來,而模板文件完成呈現的形式。

為了對模板文件更加有效地管理,Think PHP對模板文件進行目錄劃分,默認模板文件定義規則是:模板目錄\分組名\模板主題\分組名\模塊名\操作名+模板后綴。項目模板目錄是admin\Tpl,對于后臺管理模塊來說,首先需要新建Admin文件夾(模塊名),然后在該目錄下新建三個文件夾Index、Login和News,分別對應顯示查看管理員主頁面、登錄頁面和添加新聞頁面的內容。當用戶調用Action文件夾各個類的對應的相關方法時,系統將會調用相應模板文件夾下的靜態網頁index.html,并將動態內容輸出到模板中指定的標記處,最后使用display方法輸出相應的模板。

Model模型的定義是由Model類來完成,ThinkPHP對數據庫的表名和模型類的命名遵循一定的規范。首先數據庫的表名和字段全部采用小寫形式,模型類的命名規則是除去表前綴的數據表名稱,并且首字母大寫,然后加上模型類的后綴定義。

系統在后臺登錄和添加新聞時,填寫完表單后,需要校驗表單各項內容,為實現上述功能需求,就需要自定義對應的模型類UserModel.class.php和NewsModel.class.php。并使用D方法實現自動驗證與自動填充。

Action控制器對應的文件位于項目目錄admin\Lib\Action下。框架會根據當前的URL來分析要執行的模塊和操作,即模型和視圖只有在定義了相應的控制器后才能真正被使用。

在管理員管理模塊中,需要自定義IndexAction、LoginAction和NewsAction控制器類,定義規則和模型定義相同,需要注意的是控制器名稱要與視圖模板文件夾名稱保持一致。

根據項目的功能需求控制器類IndexAction中需要定義news、edit、quit和filter等方法,NewsAction中需要定義add、delete、edit、quit和update等方法,LoginAction中需要定義index、login和checklen等方法。

至此,基于ThinkPHP模型框架的新聞發布管理系統中后臺管理模塊的基本功能就搭建完成,前臺功能的搭建過程也大致類似。縱觀整個開發過程中,各個模塊定位清晰,分工明確,調度自然流暢,復用性和擴展好,特別對于美工基礎比較薄弱的開發者,可以借鑒現成的前端模板資源,并集成開源的百度UEditor編輯器插件,完全可以滿足用戶要求。

4 運行結果及分析(The operation results and analysis)

本文以新聞信息管理系統為例進行分析說明,基于ThinkPHP模型框架實現了新聞發布管理信息Web前端展示和后臺管理操作,系統前端展示如圖3所示。

開發人員可套用合適模板,使用Volist標簽主在模板中循環輸出新聞標題、內容和發布時間,主要代碼如下:

{$vo['subject']}

{$vo['message']|stripslashes}

{$vo['createtime']}

后臺管理登錄如圖4所示,后臺管理主頁如圖5所示,新聞添加頁面如圖6所示。

在后應用中,登錄信息需要格式校驗,校驗完成后,調用后臺數據庫驗證用戶名和密碼。成功后,進入后臺管理主頁,后臺會羅列每條已經發布新聞的基本信息,管理員可以對每條信息進行修改和刪除。處理事件被綁定到每行新聞的操作圖標上,然后通過單擊進行修改和刪除。新聞添加時,進入新聞添加頁面,添加新聞標題和內容即可,本系統集成開源的百度UEditor編輯器插件,使用在線編輯功能,方便對新聞內容的添加和修改。

ThinkPHP框架以標準的敏捷的方式開發Web項目,提高了開發速度,降低了開發難度,使整個項目的模塊劃分和代碼編寫更加規范,前端頁面的展示借用模板更加容易實現和擴展,更適合多人協同工作,進行分工編寫復雜的界面和后臺。

本系統使用ThinkPHP開發框架來部署Web應用,快速、簡單、門檻低,能夠短時間內開發出不錯的有效率,安全性能高的網站。特別是初學者,能夠在此基礎上進一步的擴展,添加諸如自動填充實現無限級分類功能,這樣對于了解PHP語法并且要快速開發的人來說,是一個十分便捷的工具。

5 結論(Conclusion)

本文在ThinkPHP開發框架的基礎上,通過敏捷的開發手段,對其中所使用的關鍵技術均做了詳細介紹,并通過實際應用給出了實現方法,系統經過測試,性能穩定、交互界面友好,安全性能良好,基本達到了預期的設計要求,具備較強的實用和實踐參考價值。

隨著Web技術的發展,工程化的特點日趨明顯,本文在ThinkPHP模型的敏捷Web技術的規范化、模塊化、流程化上做了一些探索,在今后的工作中,會在提供標準服務的基礎上,讓開發者可以根據自己的產品和業務特點,通過在線配置和上傳代碼的功能來擴展自定義的功能,滿中個性化需求。

參考文獻(References)

[1] 張文勝,陳宏.基于MVCS模式的組件化手機Web前端的研究與應用[J].電子設計工程,2015,11(23):19-22.

[2] 張文勝,陳宏.企業級組態式Web前端設計方法研究與應用[J].電子設計工程,2014,22(17):162-164.

[3] ThinkPHP3.2.3完全開發手冊[Online]Available: http://www.kancloud.cn/manual/thinkphp/1679,基礎部分,2015.

[4] ThinkPHP完全開發手冊[Online]Available: http://doc.thinkphp.cn/manual/development_process.html,MVC分層,2014.

[5] ThinkPHP完全開發手冊[Online]Available: http://doc.thinkphp.cn/manual/development_process.html,開發流程,2014.

[6] 王俊芳,李隱峰,王池.基于MVC模式的ThinkPHP框架研究[J].電子科技,2014,27(4):151-53.

作者簡介:

張文勝(1967-),男,碩士,工程師,講師.研究領域:Web前端架構,軟件架構設計,軟件工程.

陳 宏(1977-),女,碩士,講師.研究領域:軟件測試,軟件架構設計,軟件工程.

主站蜘蛛池模板: 久久精品亚洲专区| 日韩欧美在线观看| 九色综合伊人久久富二代| 亚洲经典在线中文字幕| 亚洲日韩在线满18点击进入| 青青草a国产免费观看| 手机在线国产精品| 无码区日韩专区免费系列| 亚洲视频欧美不卡| 色妞www精品视频一级下载| 免费无码一区二区| 亚洲爱婷婷色69堂| 国产亚洲精| 中文字幕丝袜一区二区| 亚洲男人的天堂在线观看| 成人毛片免费在线观看| 激情乱人伦| 国内毛片视频| 成人国产精品一级毛片天堂| 国产一级二级三级毛片| 99无码熟妇丰满人妻啪啪| 中文字幕欧美日韩高清| a毛片在线| 成年女人a毛片免费视频| 人人妻人人澡人人爽欧美一区| 色悠久久综合| 中文国产成人精品久久一| 亚洲日韩久久综合中文字幕| 欧美另类第一页| 中文无码精品A∨在线观看不卡| 四虎在线观看视频高清无码| 日韩欧美中文在线| 亚洲精品桃花岛av在线| www.亚洲色图.com| 在线观看精品自拍视频| 狠狠色噜噜狠狠狠狠色综合久| 丰满人妻久久中文字幕| 久久精品人人做人人综合试看| 欧美怡红院视频一区二区三区| 久久国产热| 精品国产毛片| av免费在线观看美女叉开腿| 在线精品亚洲一区二区古装| 国产精选自拍| 久久大香香蕉国产免费网站| 久久这里只精品热免费99| 黄色网址手机国内免费在线观看| 最新无码专区超级碰碰碰| 亚洲区欧美区| 国产一区二区三区免费观看| 欧美精品色视频| 无遮挡国产高潮视频免费观看| 久久永久免费人妻精品| 欧美色综合网站| 成人福利在线免费观看| 国产亚洲第一页| 老司机精品一区在线视频| 欧美一级色视频| 亚洲黄色高清| 午夜精品久久久久久久2023| a色毛片免费视频| 福利在线一区| 妇女自拍偷自拍亚洲精品| 国产黄色片在线看| 国产福利小视频高清在线观看| 五月婷婷中文字幕| 久久毛片网| 欧美三级不卡在线观看视频| 91网址在线播放| 国产成人亚洲毛片| 88av在线看| 久久精品日日躁夜夜躁欧美| 国模视频一区二区| 91系列在线观看| 日韩欧美国产中文| 亚洲国产AV无码综合原创| 国产毛片高清一级国语| 亚洲欧美人成电影在线观看| 亚洲AⅤ波多系列中文字幕| 欧美精品另类| 亚洲无线观看| 久久婷婷五月综合色一区二区|