吳欽卿 翟金亭
【摘要】 網(wǎng)頁游戲是在瀏覽器中就能玩的游戲,無需下載客戶端,而且游戲形式簡單,內(nèi)容豐富,因此用戶量與日俱增。網(wǎng)頁游戲在國內(nèi)具有非常好的發(fā)展前景。為了進一步提高用戶體驗,增加網(wǎng)頁游戲用戶的黏度,對網(wǎng)頁游戲的設(shè)計開發(fā)提出了更高的要求。該文以PHP動態(tài)網(wǎng)頁技術(shù)為基礎(chǔ),采用MVC設(shè)計模式,以開心斗地主網(wǎng)頁游戲為例進行分析與設(shè)計,充分體現(xiàn)出PHP技術(shù)在開發(fā)中小型網(wǎng)頁游戲時的優(yōu)勢。
【關(guān)鍵詞】 PHP 網(wǎng)頁游戲 MVC設(shè)計模式
一、系統(tǒng)需求分析
斗地主是一款受到廣大群眾喜愛的牌類游戲。隨著互聯(lián)網(wǎng)的高速發(fā)展,斗地主已走進網(wǎng)絡(luò)中。該斗地主網(wǎng)頁游戲包含如下具體功能模塊。1、用戶管理模塊,用戶注冊、登錄退出、注冊用戶管理等功能。2、游戲房間管理模塊,創(chuàng)建房間、顯示房間列表、加入房間、退出房間,邀請朋友等功能。斗地主游戲的參與人數(shù)設(shè)定為3個人,如果一個房間中的人數(shù)已滿,用戶便不能再進入該房間參加游戲。3、游戲模塊,根據(jù)制定的游戲規(guī)則,實現(xiàn)游戲功能。
二、系統(tǒng)架構(gòu)設(shè)計
本系統(tǒng)采用目前最流行的LAMP(Linux-ApacheMySQL-PHP)Web框架,該框架包括:Linux操作系統(tǒng),Apache網(wǎng)絡(luò)服務(wù)器,MySQL數(shù)據(jù)庫和PHP編程語言,所有組成產(chǎn)品均是開源軟件,此架構(gòu)是國際上非常成熟的架構(gòu)框架,應(yīng)用于很多商業(yè)項目。
2.1 PHP簡介
PHP(外文名: Hypertext Preprocessor,中文名:“超文本預(yù)處理器”)是一種開源腳本語言。其語法吸收了C、Java、Perl等語言語法的特點,再加上PHP自創(chuàng)的語法,使PHP變得非常易于學(xué)習(xí),并在Web開發(fā)領(lǐng)域得到廣泛應(yīng)用[1]。
PHP技術(shù)的優(yōu)點主要有以下幾個方面:PHP技術(shù)所有的PHP源代碼都可以得到;不需要支付任何費用;有很強的跨平臺性,可以在UNIX、LINUX、WINDOWS、iOS、Android等平臺運行;開發(fā)程序效率高,速度快;有很強的圖像處理功能,可以動態(tài)創(chuàng)建圖像;運行效率高,只需消耗很少的系統(tǒng)資源;可以很好的支持面向?qū)ο蠹夹g(shù)。
2.2 MVC設(shè)計思想
MVC的英文為Model-View-Controller,把一個應(yīng)用程序的輸入、處理、輸出流程按照模型(Model)、視圖(View)、控制器(Controller)的方式進行分離,將應(yīng)用程序的結(jié)構(gòu)分成三層——模型層、視圖層、控制層。模型是制定業(yè)務(wù)流程的處理以及業(yè)務(wù)規(guī)則。業(yè)務(wù)流程的處理過程對其他層來說是不透明的,模型接受視圖的請求,并返回最終的處理結(jié)果。模型的設(shè)計是MVC最主要的核心部分。視圖是程序與用戶交互的界面。一個應(yīng)用程序中可能會有很多不同的視圖,在視圖上不涉及業(yè)務(wù)流程的處理,只負責(zé)獲取用戶請求和采集處理視圖上的數(shù)據(jù)??刂破鲝挠脩籼幗邮苷埱螅瑢⒛P团c視圖匹配在一起,完成對用戶請求的響應(yīng)。
2.3 MVC設(shè)計模式的優(yōu)點
用過程語言比如ASP開發(fā)出來的Web應(yīng)用,初始的開發(fā)模板是混合層的數(shù)據(jù)編程,但由于數(shù)據(jù)窗口的分離不是很直接,所以很難體現(xiàn)出模型的重用性,產(chǎn)品設(shè)計的彈性力度很小,用戶需要的變化難以滿足。MVC則要求將應(yīng)用分層處理,雖然需要額外工作量,但可以設(shè)計出結(jié)構(gòu)清晰的產(chǎn)品,通過模型可以更好的體現(xiàn)出產(chǎn)品的應(yīng)用。具體來講,MVC主要有以下幾個方面的優(yōu)點:通過MVC模式編寫的PHP程序具有極其良好的可擴展性;具有多個視圖對應(yīng)一個模型的能力;因為模型返回的數(shù)據(jù)不帶任何顯示格式,所以這些模型也可以直接應(yīng)用于接口;有時整個應(yīng)用的改變只需改變其中一層即可滿足;有利于軟件工程化管理。
三、數(shù)據(jù)庫結(jié)構(gòu)設(shè)計
數(shù)據(jù)庫的分布通??煞譃榇怪眲澐趾退絼澐謨煞N方式。垂直劃分按照功能把數(shù)據(jù)放到不同的數(shù)據(jù)庫和服務(wù)器中,水平劃分把一個表的數(shù)據(jù)劃分到兩個不同的數(shù)據(jù)庫中,具體怎么劃分,可以由數(shù)據(jù)的產(chǎn)生者引導(dǎo),本系統(tǒng)中所有的數(shù)據(jù)都是由人產(chǎn)生的,因此可以根據(jù)人的ID來劃分數(shù)據(jù)庫,然后再根據(jù)一定的規(guī)則,將不同的數(shù)據(jù)分配到不同的數(shù)據(jù)庫中。根據(jù)需求分析可知,整個系統(tǒng)包含兩種信息,對應(yīng)的數(shù)據(jù)庫也需要包含這兩種信息,因此系統(tǒng)需要包含兩個數(shù)據(jù)表。user:用戶信息表,用來保存整個系統(tǒng)的用戶信息。room:房間信息表,用來保存整個系統(tǒng)的房間信息。
四、系統(tǒng)運行流程
開啟服務(wù)器端的Web服務(wù),打開瀏覽器,在瀏覽器中輸入網(wǎng)址進入斗地主網(wǎng)頁并登錄,然后選擇或者創(chuàng)建房間,當(dāng)單個房間內(nèi)湊足三人即可開始游戲。
五、結(jié)束語
當(dāng)使用PHP技術(shù)開發(fā)動態(tài)網(wǎng)頁時,最佳的開發(fā)模式是三層結(jié)構(gòu)。三層結(jié)構(gòu)包括:表示層(USL)、業(yè)務(wù)邏輯層(BLL)、數(shù)據(jù)訪問層(DAL)。數(shù)據(jù)訪問層主要是對原始數(shù)據(jù)的操作層,業(yè)務(wù)邏輯層主要是針對具體問題的操作,表示層主要表示W(wǎng)eb方式。因此,相對于ASP、JAVA、.NET等技術(shù),PHP是開發(fā)中小型網(wǎng)頁游戲的最佳選擇。
參 考 文 獻
[1] 潘凱華,劉中華等著.PHP從入門到精通[M].北京:清華大學(xué)出版社.2010:3-21.
[2]于廣著.PHP項目開發(fā)實戰(zhàn)密碼[M].北京:清華大學(xué)出版社.2015:335-357.