本文基于紅酒交易平臺(tái)的需求分析,比較了國內(nèi)外流行的幾種MVC框架,選擇ThinkPHP框架進(jìn)行架構(gòu)設(shè)計(jì),通過共用控制器和模型、采用多視圖的方式支持多終端設(shè)備,提高了開發(fā)效率、縮短開發(fā)工期并節(jié)約開發(fā)成本,具有普遍的應(yīng)用價(jià)值。
【關(guān)鍵詞】PHP ThinkPHP MVC 電子商務(wù) 架構(gòu)設(shè)計(jì)
1 紅酒交易平臺(tái)的需求分析
紅酒交易平臺(tái)是銷售酒類、培訓(xùn)、器皿、酒窖定制服務(wù)的電子商務(wù)平臺(tái),支持PC端瀏覽器、手機(jī)端瀏覽器、微信端以及Android端和iOS端。
本文從功能性需求和非功能性需求兩個(gè)方面進(jìn)行需求分析。
1.1 功能性需求分析
本平臺(tái)有三個(gè)主要功能和一個(gè)主要流程:品類管理、促銷管理、訂單管理和購物流程。
1.1.1 品類管理
主要是管理商品的分類和商品管理。
1.1.2 促銷管理
支持各種促銷手段:滿額贈(zèng)送、限時(shí)搶購、買N送N、特價(jià)促銷等。
1.1.3 訂單管理
平臺(tái)收到訂單后,如果是已經(jīng)支付的訂單或者是貨到付款的訂單,備貨后輸入物流單號和物流公司發(fā)貨。用戶如果退貨,平臺(tái)允許退貨并收到用戶退貨后,退款給該用戶。
1.1.4 購物流程
用戶瀏覽商品并加入購物車,如果該商品符合促銷條件,自動(dòng)在購物車放入贈(zèng)品,用戶確認(rèn)訂單并支付,等待平臺(tái)發(fā)貨,用戶收到貨物后確認(rèn)到貨并評價(jià)。
1.2 非功能性需求分析
1.2.1 安全要求
對于需要登錄后才能訪問的頁面要禁止非法訪問等。
1.2.2 性能要求
網(wǎng)絡(luò)正常的情況下,大于2MB/秒,1000人以下并發(fā)訪問頁面打開時(shí)間最多不超過5秒。
2 紅酒交易平臺(tái)MVC框架的選擇
通過技術(shù)平臺(tái)選型,考察ASP.NET MVC、Struts2、Spring MVC、ThinkPHP、Laravel等多個(gè)MVC框架后,結(jié)合技術(shù)團(tuán)隊(duì)能力、國內(nèi)流行程度等因素,將ASP.NET MVC、Struts2、ThinkPHP作為備選技術(shù)方案。ThinkPHP中的MVC提供了一種敏捷開發(fā)的手段,使得開發(fā)者能夠迅速地開發(fā)出穩(wěn)定的企業(yè)級網(wǎng)站。ThinkPHP在中小型應(yīng)用中,學(xué)習(xí)成本最低、開發(fā)效率最高,所以在國內(nèi)PHP MVC框架應(yīng)用中占據(jù)了將近50%的市場份額。本平臺(tái)是一個(gè)中等規(guī)模的網(wǎng)站,根據(jù)前述非功能性需求分析得出,并發(fā)訪問量要求不高,且用戶預(yù)算低、開發(fā)周期短,所以決定平臺(tái)采用ThinkPHP框架。
3 紅酒交易平臺(tái)的架構(gòu)設(shè)計(jì)
3.1 平臺(tái)架構(gòu)的設(shè)計(jì)
為了進(jìn)一步壓縮成本,縮短開發(fā)時(shí)間,從架構(gòu)設(shè)計(jì)上既要滿足前述用戶需求,又要減少開發(fā)工作量。因此平臺(tái)通過共用控制器和模型,采用多視圖的方法滿足用戶PC端、手機(jī)端、微信端瀏覽本平臺(tái)的需求,由于Anroid端和iOS端采用Hybrid APP混合框架,內(nèi)嵌了瀏覽器,所以本架構(gòu)也能給予很好的支持。前端則采用Bootstrap框架進(jìn)行快速頁面布局和前端編程。Bootstrap是最受歡迎的 HTML、CSS 和 JS 框架,用于開發(fā)響應(yīng)式布局、移動(dòng)設(shè)備優(yōu)先的 WEB 項(xiàng)目。根據(jù)需求分析,本平臺(tái)部分技術(shù)架構(gòu)設(shè)計(jì)如圖1所示。
限于篇幅,本架構(gòu)主要展示了平臺(tái)Home前臺(tái)的架構(gòu)設(shè)計(jì),前臺(tái)Home和后臺(tái)Admin共用CommonModel,前臺(tái)PC端View和移動(dòng)端MobileView共用了前臺(tái)Controller,從而減少了開發(fā)冗余,提高了代碼復(fù)用率。
3.2 前臺(tái)控制器基類的實(shí)現(xiàn)
FrontController是前臺(tái)控制器的基類,只有一個(gè)方法_initialize,繼承該基類的前臺(tái)控制器都會(huì)執(zhí)行該方法。_initialize方法通過ismobile函數(shù)判斷,如果是手機(jī)端或者微信端瀏覽,則通過C(‘DEFAULT_V_LAYER,MobileView)函數(shù)將默認(rèn)視圖層從View目錄改成MobileView目錄,從而改成適合手機(jī)瀏覽的網(wǎng)頁,而控制器類和模型類無需修改。用戶沒有登錄,即判斷$_SESSION[‘USER]為空,如果用戶訪問了需要登錄才能訪問的控制器方法,使用$this->redirect方法將鏈接重定向登錄方法,強(qiáng)制用戶登錄。
4 結(jié)束語
MVC輕量級ThinkPHP框架,基于面向?qū)ο蟮乃枷?結(jié)合使用了Ajax技術(shù),使整個(gè)系統(tǒng)功能清晰明了。本平臺(tái)選擇ThinkPHP框架進(jìn)行架構(gòu)設(shè)計(jì),采用多個(gè)視圖共用一個(gè)控制器方法的方式支持多終端設(shè)備瀏覽器以及Hybrid APP混合框架里的內(nèi)嵌瀏覽器,滿足了紅酒交易平臺(tái)的功能性需求和非功能性需求,提高了開發(fā)效率、縮短開發(fā)工期并節(jié)約開發(fā)成本,具有較好的技術(shù)推廣價(jià)值。
參考文獻(xiàn)
[1]徐誠斌,王金平.MVC在ThinkPHP框架中的應(yīng)用研究[J].信息與電腦:理論版,2011(03):160-160.
[2]Bootstrap中文網(wǎng).Bootstrap中文文檔[EB/OL].http://v3.bootcss.com/, 2014-10-31/2016-12-7.
[3]許燕.基于ThinkPHP框架的校園交易平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[J].信息技術(shù)與信息化,2016(07):34-37.
作者簡介
陳棟良(1975-),男,江蘇省宜興市人。碩士學(xué)位?,F(xiàn)為蘇州工業(yè)園區(qū)服務(wù)外包職業(yè)學(xué)院講師。研究方向?yàn)檐浖夹g(shù)。
作者單位
蘇州工業(yè)園區(qū)服務(wù)外包職業(yè)學(xué)院 江蘇省蘇州市 215123