陳棟良
摘要:本文基于招投標平臺的需求分析,比較了國內外流行的幾種MVC框架,選擇ThinkPHP框架進行架構設計,后臺通過共用控制器和模型、采用多視圖的方式支持多終端設備瀏覽器,網頁前端采用Bootstrap快速開發框架,提高了開發效率、縮短開發周期并節約開發成本,具有普遍的應用價值。
關鍵詞:ThinkPHP MVC Bootstrap 招投標 架構設計
中圖分類號:TP311.52 文獻標識碼:A 文章編號:1007-9416(2016)12-0165-01
1 招投標平臺的需求分析
本招投標平臺是建筑行業平臺級的產品,主要是服務建筑行業內的專業性企業、個人以及專家,通過整合建筑行業資源、以建筑行業項目和服務為紐帶,致力解決行業項目和服務招投標不規范、不透明、交易成本高企的現狀。本文從功能性需求和非功能性需求兩個方面進行需求分析。
1.1 功能性需求分析
本招標平臺分為兩個主要流程:用戶注冊流程、招投標流程。(1)用戶注冊流程。用戶通過短信驗證碼注冊后,完善用戶資料,成為注冊用戶;用戶上傳照片或者掃描件進行身份和建筑行業資質認證,平臺后臺認證后,用戶成為認證用戶;用戶繳納平臺會員費后成為VIP用戶。(2)招投標流程。用戶發布招標項目和招標文件,符合項目條件的用戶可以投標該項目,招標者在競標列表中選標,中標者實施該項目,完工后提交驗收、繳納專家審核費,專家確認是否驗收通過,最后由招標者決定項目是否結束。
1.2 非功能性需求分析
(1)終端設備支持。平臺可以支持PC端瀏覽器、手機瀏覽器以及微信端瀏覽。(2)安全要求。對于需要登錄后才能訪問的頁面要禁止非法訪問等。(3)性能要求。網絡正常的情況下,大于2MB/秒,1000人以下并發訪問頁面打開時間最多不超過5秒。
2 招投標平臺MVC框架的選擇
通過技術平臺選型,考察ASP.NET MVC、Struts2、Spring MVC、ThinkPHP、Yii等多個MVC框架后,結合技術團隊能力、國內流行程度等因素,將ASP.NET MVC、Struts2、ThinkPHP作為備選技術方案。ThinkPHP中的MVC提供了一種敏捷開發的手段,使得開發者能夠迅速地開發出穩定的企業級網站[1]。ThinkPHP在中小型應用中,學習成本最低、開發效率最高,所以在國內PHP MVC框架應用中占據了將近50%的市場份額。本平臺是一個中等規模的網站,根據前述非功能性需求分析得出,并發訪問量要求不高,且用戶預算低、開發周期短,所以決定平臺采用ThinkPHP框架。
3 招投標平臺的架構設計
3.1 平臺架構的設計
為了進一步壓縮成本,縮短開發時間,從架構設計上既要滿足前述用戶需求,又要減少開發工作量。因此平臺通過共用控制器和模型,采用多視圖的方法滿足用戶PC端、手機端、微信端瀏覽本平臺的需求,而前端則采用Bootstrap框架進行快速頁面布局和前端編程。Bootstrap是最受歡迎的HTML、CSS和JS框架,用于開發響應式布局、移動設備優先的WEB項目[2]。根據需求分析,本平臺部分技術架構設計如圖1所示。
限于篇幅,本架構主要展示了平臺Home前臺的架構設計,前臺Home和后臺Admin共用Common\Model,前臺PC端View和移動端MobileView共用了前臺Controller,從而減少了開發冗余,提高了代碼復用率,大幅壓縮了開發成本和開發周期,提高了軟件質量。
3.2 前臺控制器基類的實現
FrontController是前臺控制器的基類,只有一個方法_initialize,繼承該基類的前臺控制器都會執行該方法。_initialize方法通過ismobile函數判斷,如果是手機端或者微信端瀏覽,則通過C(‘DEFAULT_V_LAYER,MobileView)函數將默認視圖層從View目錄改成MobileView目錄,從而改成適合手機瀏覽的網頁,而控制器類和模型類無需修改。如果用戶沒有登錄,用戶訪問了需要登錄才能訪問的控制器方法,則將鏈接重定向登錄方法,強制用戶登錄。
4 結語
MVC輕量級ThinkPHP框架,基于面向對象的思想,結合使用了Ajax技術,使整個系統功能清晰明了[3]。本平臺選擇ThinkPHP框架進行架構設計,采用多個視圖共用一個控制器方法的方式支持多終端設備瀏覽器,滿足了招投標平臺的功能性需求和非功能性需求,提高了開發效率、縮短開發周期并節約開發成本,具有較好的技術推廣價值。
參考文獻
[1]徐誠斌,王金平.MVC在ThinkPHP框架中的應用研究[J].信息與電腦:理論版,2011(3):160-160.
[2]楊浩.基于ThinkPhp框架的校園網絡設備管理系統設計與實現[J].西北大學,2012.
[3]許燕.基于ThinkPHP框架的校園交易平臺的設計與實現[J].信息技術與信息化,2016(7):34-37.