李艷 王思艷
摘 要:近幾年圖書(shū)質(zhì)量良莠不齊,導(dǎo)致高校圖書(shū)館購(gòu)置圖書(shū)和高校師生選用教材方面無(wú)法做到“優(yōu)勝劣汰”。針對(duì)這種現(xiàn)狀,本研究在詳盡的需求分析基礎(chǔ)上,采用MVC設(shè)計(jì)標(biāo)準(zhǔn),基于ThinkPHP框架實(shí)現(xiàn)了一個(gè)高校書(shū)評(píng)系統(tǒng)。實(shí)踐證明,基于ThinkPHP框架開(kāi)發(fā)的該系統(tǒng)在開(kāi)發(fā)過(guò)程中不僅規(guī)范化程度高,且效率高。由于采用評(píng)論實(shí)名制、優(yōu)秀書(shū)評(píng)推薦機(jī)制和積分激勵(lì)等機(jī)制,該系統(tǒng)在應(yīng)用中“優(yōu)勝劣汰”作用明顯,可以很好地服務(wù)于高校教學(xué)。
關(guān)鍵詞:高校;書(shū)評(píng)系統(tǒng);ThinkPHP
中圖分類(lèi)號(hào):TP315 文獻(xiàn)標(biāo)識(shí)碼:A
1 引言(Introduction)
近幾年,隨著圖書(shū)數(shù)量的增多,圖書(shū)質(zhì)量良莠不齊,由此導(dǎo)致如下現(xiàn)狀——學(xué)校圖書(shū)館在購(gòu)置各種紙質(zhì)圖書(shū)或電子書(shū)的過(guò)程中,經(jīng)常會(huì)在相同或相似的書(shū)名面前不知該選取何種圖書(shū)。雖然有簡(jiǎn)單的圖書(shū)信息(目錄、樣章或簡(jiǎn)要說(shuō)明),可仍舊不清楚這本書(shū)究竟值不值得購(gòu)買(mǎi)。對(duì)教師而言,要選擇一本好教材尤為重要,然而面對(duì)新出版的各種“規(guī)劃教材”“應(yīng)用型教材”……,除非用過(guò),或者提前向出版社索要樣書(shū),否則僅憑圖書(shū)信息,不能很好地鑒別這些書(shū)的應(yīng)用價(jià)值。對(duì)學(xué)生而言,要想購(gòu)買(mǎi)和閱讀專(zhuān)業(yè)圖書(shū),一般需要教師前期閱讀的經(jīng)驗(yàn)幫助,才能選到真正能滿(mǎn)足學(xué)習(xí)需要的專(zhuān)業(yè)圖書(shū)??傊还茉谛熒蛘咂胀ㄗx者,他們都希望在閱讀或購(gòu)買(mǎi)前可以查詢(xún)到其他讀者對(duì)相關(guān)圖書(shū)的各種中肯的評(píng)論信息,并將其作為一個(gè)閱讀或購(gòu)買(mǎi)意向的參考。由此可見(jiàn),構(gòu)建書(shū)評(píng)系統(tǒng)有較高的實(shí)用價(jià)值和需求。其意義體現(xiàn)在如下幾個(gè)方面:第一,有利于讀者閱讀或者購(gòu)買(mǎi)心儀的電子或紙質(zhì)圖書(shū)。第二,給學(xué)?;蛘叩胤綀D書(shū)館購(gòu)買(mǎi)館藏圖書(shū)提供相應(yīng)的參考。第三,中肯的書(shū)評(píng)給作者寶貴的意見(jiàn),有利于作者改進(jìn)圖書(shū)質(zhì)量。第四,書(shū)評(píng)給各出版社提供了重要反饋信息,好書(shū)自然會(huì)有好評(píng),真正體現(xiàn)圖書(shū)出版領(lǐng)域的“優(yōu)勝劣汰”,有助于出版社的良好發(fā)展和運(yùn)營(yíng)。
2 需求分析(Requirement analysis)
本系統(tǒng)目前定位于高校,重點(diǎn)關(guān)注高校圖書(shū)館購(gòu)置館藏圖書(shū)和高校師生選用專(zhuān)業(yè)教材,以及課下閱讀專(zhuān)業(yè)輔助教材等問(wèn)題,力爭(zhēng)在魚(yú)龍混雜的各種教材中購(gòu)置滿(mǎn)足教學(xué)需要的真正“好用”的圖書(shū)。
本書(shū)評(píng)系統(tǒng)用戶(hù)有兩種,前臺(tái)普通注冊(cè)用戶(hù)和后臺(tái)管理員。
前臺(tái)普通注冊(cè)用戶(hù)有兩種功能需求:第一種為圖書(shū)信息操作功能。(1)用戶(hù)可以按照不同需求瀏覽系統(tǒng)發(fā)布的圖書(shū)信息。(2)可以選擇搜索功能檢索系統(tǒng)所發(fā)布的圖書(shū)信息。(3)對(duì)他有興趣的圖書(shū)可以進(jìn)行收藏。(4)對(duì)圖書(shū)還可以進(jìn)行點(diǎn)贊和評(píng)分功能,可以利用圖書(shū)收藏?cái)?shù)和好評(píng)率為其他用戶(hù)提供參考信息。第二種為書(shū)評(píng)信息操作功能。(1)用戶(hù)對(duì)他已看過(guò)的圖書(shū)可以發(fā)布中肯的書(shū)評(píng)信息(可以發(fā)表兩種書(shū)評(píng):長(zhǎng)書(shū)評(píng)和短書(shū)評(píng))。(2)對(duì)他自己發(fā)表的書(shū)評(píng)信息可以進(jìn)行修改和刪除操作。(3)用戶(hù)在瀏覽各種書(shū)評(píng)的時(shí)候,可以進(jìn)行回復(fù),發(fā)表自己的個(gè)人觀點(diǎn)。第三種為用戶(hù)個(gè)人中心操作功能。(1)用戶(hù)在登錄之后可修改個(gè)人信息,如修改密碼和頭像。(2)用戶(hù)在登錄之后可管理他曾收藏的各種圖書(shū),如刪除圖書(shū)信息。(3)用戶(hù)在登錄之后可發(fā)表日記,記錄自己的讀書(shū)體會(huì)。
后臺(tái)管理員功能需求:第一種為管理圖書(shū)信息功能。(1)在管理員登錄后就可以通過(guò)圖書(shū)管理瀏覽已添加的圖書(shū)信息。(2)管理員登錄后可以添加圖書(shū)信息。(3)可以修改刪除已有圖書(shū)信息。第二種為管理書(shū)評(píng)信息功能,管理員可瀏覽書(shū)評(píng)和刪除書(shū)評(píng)信息。第三種為管理用戶(hù)信息功能,管理員可以設(shè)置用戶(hù)的各種級(jí)別和積分限制,查看已注冊(cè)用戶(hù)的詳細(xì)信息。第四種為管理圖書(shū)分類(lèi)信息的功能,管理員登錄后查看圖書(shū)分類(lèi)信息,還可添加修改和刪除圖書(shū)分類(lèi)信息。
3 系統(tǒng)設(shè)計(jì)(Design of the system)
3.1 系統(tǒng)的體系結(jié)構(gòu)
依照MVC設(shè)計(jì)標(biāo)準(zhǔn),本系統(tǒng)各個(gè)功能模塊之間,采用“用戶(hù)表示層、應(yīng)用控制層、數(shù)據(jù)模型層”三層體系結(jié)構(gòu)[1],本系統(tǒng)體系結(jié)構(gòu)如圖1所示。
MVC(“Model-View-Controller”的縮寫(xiě)),可以說(shuō)它是一種先進(jìn)的設(shè)計(jì)思想。在MVC下,應(yīng)用程序的輸入、應(yīng)用程序的處理和應(yīng)用程序的輸出這三者被強(qiáng)制性分開(kāi)[2,3],MVC架構(gòu)模式如圖2所示。
3.2 功能模塊劃分
本系統(tǒng)共兩種用戶(hù),各自有不同的管理模塊。與管理員相關(guān)的有圖書(shū)信息管理模塊、圖書(shū)分類(lèi)信息管理模塊、圖書(shū)評(píng)論信息管理模塊和用戶(hù)信息管理模塊。而與其他一般用戶(hù)相關(guān)的功能模塊有圖書(shū)信息操作模塊、書(shū)評(píng)信息操作模塊、日記信息操作模塊和個(gè)人信息操作模塊。各個(gè)功能模塊間基于MVC設(shè)計(jì),可以獨(dú)立進(jìn)行構(gòu)造。為了提高各個(gè)模塊的高效化,每個(gè)功能模塊又有各種不同子模塊,這樣易于系統(tǒng)的構(gòu)建和維護(hù)[4]。
3.3 數(shù)據(jù)庫(kù)設(shè)計(jì)
基于前面系統(tǒng)需求分析和功能模塊劃分,共設(shè)計(jì)了六個(gè)表——管理員表、圖書(shū)信息表、書(shū)評(píng)信息表、普通用戶(hù)信息表、圖書(shū)分類(lèi)信息表和日記信息表等。
4 系統(tǒng)實(shí)現(xiàn)(Implementation of the system)
本系統(tǒng)選用ThinkPHP框架+MySql進(jìn)行開(kāi)發(fā)。傳統(tǒng)的php系統(tǒng)開(kāi)發(fā)有如下特征:代碼不很靈活,前端需要考慮div、css、js,后端還要考慮php和mySql,涉及工作很多,效率一般。與傳統(tǒng)的php系統(tǒng)開(kāi)發(fā)有所不同,本系統(tǒng)雖利用php語(yǔ)言開(kāi)發(fā),但系統(tǒng)采用了ThinkPHP框架,有效提高了系統(tǒng)的開(kāi)發(fā)效率。ThinkPHP是一個(gè)免費(fèi)開(kāi)源的,快速、簡(jiǎn)單的面向?qū)ο蟮妮p量級(jí)PHP開(kāi)發(fā)框架[5],依照Apache2開(kāi)源協(xié)議發(fā)布,是為快速網(wǎng)頁(yè)應(yīng)用開(kāi)發(fā)和簡(jiǎn)化企業(yè)應(yīng)用開(kāi)發(fā)而誕生的。ThinkPHP從誕生以來(lái)一直秉承簡(jiǎn)潔好用的設(shè)計(jì)原則,在保持出色的性能和至簡(jiǎn)代碼的同時(shí),它也注重易用性[6,7]。
4.1 ThinkPHP框架部署
在系統(tǒng)所需的開(kāi)發(fā)環(huán)境都已部署好后,從網(wǎng)上下載最新的ThinkPHP框架[4]。在網(wǎng)站根目錄新建文件夾rbook,作為高校書(shū)評(píng)系統(tǒng)項(xiàng)目名稱(chēng)。再將前面下載的ThinkPHP核心目錄包放到此根目錄下,在Rbook目錄下新建index.php文件,作為項(xiàng)目入口文件,運(yùn)行后相關(guān)目錄會(huì)自動(dòng)生成。
4.2 基于MVC開(kāi)發(fā)系統(tǒng)
本系統(tǒng)在開(kāi)發(fā)的各個(gè)方面都體現(xiàn)了MVC。在系統(tǒng)開(kāi)發(fā)中,在model類(lèi)中寫(xiě)與各個(gè)數(shù)據(jù)表有關(guān)的一些數(shù)據(jù)操作,如圖書(shū)信息表(圖書(shū)號(hào)、作者、圖書(shū)名稱(chēng)、圖書(shū)類(lèi)型、圖書(shū)信息簡(jiǎn)述、ISBN、出版社、圖書(shū)圖片、出版日期、點(diǎn)藏?cái)?shù)、評(píng)分)一些操作。在Action類(lèi)中主要寫(xiě)與高校書(shū)評(píng)系統(tǒng)業(yè)務(wù)流程有關(guān)的一些代碼,在tpl中重點(diǎn)寫(xiě)與本系統(tǒng)顯示有關(guān)的設(shè)計(jì)代碼,這樣層與層間獨(dú)立,相互依賴(lài)性就明顯減少,有很好的復(fù)用性[8]。如果后期有其他需求,這種基于MVC的設(shè)計(jì)仍然可很好地滿(mǎn)足可擴(kuò)展性。下面就以前臺(tái)一般注冊(cè)用戶(hù)書(shū)評(píng)信息操作模塊為例詳細(xì)說(shuō)明系統(tǒng)的開(kāi)發(fā)。
(1)模型的實(shí)現(xiàn)
一般注冊(cè)用戶(hù)的書(shū)評(píng)信息操作模塊,主要包括查看書(shū)評(píng)信息、發(fā)布書(shū)評(píng)信息、修改自己書(shū)評(píng)信息和刪除自己書(shū)評(píng)信息四個(gè)子模塊。這里的書(shū)評(píng)信息操作,都要保證一條書(shū)評(píng)只能屬于一本圖書(shū),一條書(shū)評(píng)只能屬于一位注冊(cè)用戶(hù)(只能被一位注冊(cè)用戶(hù)發(fā)表)。為此,在Rbook\Lib\Model目錄下新建了一個(gè)LongreviewModel.class.php文件,此刻,意味著新建了圖書(shū)關(guān)聯(lián)模型類(lèi)Longreview,代碼如下:
(2)控制器的實(shí)現(xiàn)
在一般注冊(cè)用戶(hù)的書(shū)評(píng)信息操作模塊中,需自定義一個(gè)控制器類(lèi)ReviewAction。依照高校書(shū)評(píng)系統(tǒng)的功能需要,此控制器類(lèi)它至少需要定義如下幾個(gè)方法——用于查看書(shū)評(píng)詳情頁(yè)面的方法index(),用于發(fā)布書(shū)評(píng)信息的方法insert(),用于修改書(shū)評(píng)的方法edit(),用于刪除影評(píng)信息的方法del()。其操作流程為,先在Rbook\Lib\Action目錄下新建ReviewAction.class.php文件,在此只列出刪除書(shū)評(píng)的方法關(guān)鍵代碼:
(3)視圖的實(shí)現(xiàn)
就書(shū)評(píng)信息操作模塊而言,可在Rbook\Tpl\Review目錄下新建兩個(gè)文件edit.html和review.html。edit.html顯示修改一般注冊(cè)用戶(hù)書(shū)評(píng)信息的內(nèi)容,review.html則可用于顯示一般注冊(cè)用戶(hù)查看書(shū)評(píng)、發(fā)布書(shū)評(píng)和刪除自己的書(shū)評(píng)的內(nèi)容。例如當(dāng)用戶(hù)調(diào)用ReviewAction這個(gè)類(lèi)中的edit方法修改自己發(fā)布的書(shū)評(píng)信息時(shí),系統(tǒng)會(huì)調(diào)用相應(yīng)模板文件夾Rbook\Tpl\Review下的edit.html網(wǎng)頁(yè),在用display()輸出相應(yīng)的模板前,需要將頁(yè)面中動(dòng)態(tài)的信息輸出到相應(yīng)的標(biāo)記處。同樣的,查看一般注冊(cè)用戶(hù)查看書(shū)評(píng)、發(fā)布書(shū)評(píng)和刪除自己的書(shū)評(píng)原理與修改書(shū)評(píng)一致,這里不再贅述。例如在瀏覽器中可以看到發(fā)布書(shū)評(píng)的內(nèi)容如圖3所示。
至此,高校書(shū)評(píng)系統(tǒng)的一般注冊(cè)用戶(hù)的書(shū)評(píng)信息操作模塊已全部實(shí)現(xiàn),系統(tǒng)其他功能模塊的實(shí)現(xiàn)原理和技術(shù)基本相同,這里不再贅述。縱觀高校書(shū)評(píng)系統(tǒng)的開(kāi)發(fā)過(guò)程,我們發(fā)現(xiàn)利用ThinkPHP框架開(kāi)發(fā)快速高效,你可依照你自己的需要靈活地創(chuàng)建各種模板、模型和控制器。
5 結(jié)論(Conclusion)
利用ThinkPHP框架開(kāi)發(fā)的高校書(shū)評(píng)系統(tǒng)目前已開(kāi)發(fā)完成,實(shí)踐證明利用該框架開(kāi)發(fā)的系統(tǒng)不僅效率高,而且規(guī)范化程度高?,F(xiàn)在該系統(tǒng)已在本地區(qū)兄弟院校間進(jìn)行測(cè)試運(yùn)行,反饋效果很好,“優(yōu)勝劣汰”作用明顯。下一步要在如何提高書(shū)評(píng)質(zhì)量方面進(jìn)行重點(diǎn)研究,進(jìn)一步改進(jìn)和完善系統(tǒng),讓其在高校圖書(shū)館購(gòu)置圖書(shū)和高校師生選用教材方面進(jìn)一步發(fā)揮其“優(yōu)勝劣汰”作用。
參考文獻(xiàn)(References)
[1] Pujari J K,Sayed I H,Rajput B.WORKING OF MVC PATTERNS FOR DESIGNING AND IMPLEMENTING USER FRIENDLY AND RESPONSIVE WEB BASED APPLICATION-A REVIEW[J].Advances in Computational Research,2015,7(1):206.
[2] Wen-zheng Z,Hong C.The Research and Application of Modular Mobile Phone Web Front-end Based on MVCS Mode[J].International Journal of Future Generation Communication and Networking,2015,8(5):97-106.
[3] Kim K,et al.An interactive pervasive whiteboard based on MVC architecture for ubiquitous collaboration[J].Multimedia Tools and Applications,2015,74(5):1557-1576.
[4] 王俊芳,李隱峰,王池.基于MVC模式的ThinkPHP框架研究[J].電子科技,2014,27(04):151-154.
[5] 張文勝,陳宏.基于ThinkPHP模型的敏捷開(kāi)發(fā)的應(yīng)用與實(shí)踐[J].軟件工程,2016(03):45-48.
[6] 王艷青,李天輝.基于ThinkPHP的Ajax數(shù)據(jù)交互研究[J].遼寧大學(xué)學(xué)報(bào)(自然科學(xué)版),2016(02):119-122.
[7] 孫祎.基于ThinkPHP的網(wǎng)站集群設(shè)計(jì)[J].電腦知識(shí)與技術(shù),2015(31):73-74.
[8] 江銀洋,劉愛(ài)麗.基于Thinkphp框架實(shí)現(xiàn)購(gòu)房簽到系統(tǒng)[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2015(02):34-37.