顏春艷
(江蘇省南京技師學(xué)院 江蘇 南京 210033)
資訊類網(wǎng)站在信息發(fā)布方面對時效性提出了較高要求,強調(diào)根據(jù)資訊內(nèi)容快速完成資訊搜索和顯示,動態(tài)更新網(wǎng)站內(nèi)容,確保網(wǎng)站可以獲得較強競爭力。但常規(guī)網(wǎng)站后臺管理系統(tǒng)采取的架構(gòu)難以為網(wǎng)站界面動態(tài)變換提供支持,并且將隨著網(wǎng)站資訊內(nèi)容和用戶訪問量的持續(xù)增加出現(xiàn)反應(yīng)過慢問題,給用戶帶來不良體驗。引入ThinkPHP框架設(shè)計網(wǎng)站后臺管理系統(tǒng),實現(xiàn)業(yè)務(wù)邏輯、界面呈現(xiàn)等過程的抽離整合,減少重復(fù)書寫代碼,可以迅速擴展系統(tǒng)程序和提供穩(wěn)定應(yīng)用,給用戶帶來良好資訊瀏覽體驗。
在Web 開發(fā)方面,PHP 可以與前端代碼一同編寫,同時也能實現(xiàn)后臺數(shù)據(jù)處理,被視作重要的編程工具。而ThinkPHP 是基于PHP 的框架之一,建立在MVC 三層架構(gòu)基礎(chǔ)上,按照業(yè)務(wù)邏輯劃分為數(shù)據(jù)層(Model)、視圖層(View)和控制層(Controller),由于各層保持分離,能夠單獨修改,無需重寫大量代碼[1]。遵循Apache2 開源協(xié)議,ThinkPHP 屬于輕量級的Web 框架,能夠為Windows、Linux等多種開發(fā)環(huán)境提供支持,并為分組模塊、類庫導(dǎo)入、查詢語言等多種模塊提供支持,也能在Application 目錄下新建模塊[2]。此外,ThinkPHP 自帶Model 類、View 類等多種類文件,存放在第三方類庫中,能夠完成應(yīng)用配置、模塊擴展配置、動態(tài)配置等各種操作,用于系統(tǒng)開發(fā),具有性能好、速度快等特點。
基于ThinkPHP 框架對資訊類網(wǎng)站后臺管理系統(tǒng)進行設(shè)計,需要面向系統(tǒng)管理人員對系統(tǒng)功能展開分析,確保系統(tǒng)使用的流暢性。實際在功能需求捕獲的過程中,可以通過例圖直觀顯示,根據(jù)不同功能需求建立相應(yīng)用例模型[3]。在后臺管理系統(tǒng)操作過程中,按照角色可以將用戶劃分為普通管理員和總管理員,前者負責網(wǎng)站欄目管理、資訊內(nèi)容管理等,后者則額外擁有網(wǎng)站管理、用戶管理等權(quán)限。
2.1.1 欄目管理
網(wǎng)站欄目管理的用例圖見圖1,用戶登錄系統(tǒng)后進入主管理界面,通過“欄目管理”按鈕進入對應(yīng)界面,可以在提示下進行菜單增刪操作,填寫表單信息,完成頁面編輯。
2.1.2 資訊內(nèi)容管理
資訊內(nèi)容管理功能包含文章添加、刪除、修改和推薦等操作,用例圖與欄目管理接近。對文章進行修改或推薦,在進入系統(tǒng)主界面點擊“資訊內(nèi)容管理”按鈕后,選擇對應(yīng)功能按鈕進入編輯或推薦界面,可以選擇將要操作的文章,然后點擊“修改”或“推薦”按鈕,按照提示完成后續(xù)操作。在整個過程中,系統(tǒng)時序圖見圖2,在用戶User登錄時,系統(tǒng)根據(jù)用戶名對數(shù)據(jù)庫中的權(quán)限信息進行查找并返回,確保用戶順利登錄。將表單數(shù)據(jù)提交給JS 進行處理,完成Json 格式的文件封裝,向Controller 發(fā)送請求獲取參數(shù),完成相應(yīng)Service 類調(diào)用。通過Model 直接調(diào)取模型進行數(shù)據(jù)處理,無需完成復(fù)雜的數(shù)據(jù)庫操作,可以直接與Database 數(shù)據(jù)庫建立連接完成讀寫操作,最終將結(jié)果逐層返回至網(wǎng)頁界面[4]。
2.1.3 網(wǎng)站管理
總管理員能夠進行網(wǎng)站配置管理,用例圖見圖3,進入主界面后根據(jù)權(quán)限點擊“配置管理”按鈕后可以進入相應(yīng)界面,根據(jù)提示填寫表單,輸入站點標題、關(guān)鍵字、描述內(nèi)容等,點擊“提交”后能夠提交表單。如果順利提交,系統(tǒng)自動跳轉(zhuǎn)主界面,否則將提示錯誤信息。此外,在完成網(wǎng)站信息修改后,可以在菜單中點擊“數(shù)據(jù)庫自動備份”“首頁緩存”等按鈕完成網(wǎng)頁信息更新[5]。
2.1.4 用戶管理
用戶管理功能包含新建用戶、角色分配、用戶信息修改等操作。在權(quán)限范圍內(nèi)可以進入創(chuàng)建用戶界面,點擊“添加”或“刪除”等按鈕,能夠完成對應(yīng)表單信息填寫,成功提交后可以完成操作。
除了滿足基本功能需求,還需達到非功能需求。首先,應(yīng)用開源技術(shù)降低系統(tǒng)開發(fā)成本,應(yīng)選用開源軟件,體現(xiàn)開放性特點。其次,應(yīng)達到安全性要求,根據(jù)用戶權(quán)限區(qū)分信息操作安全級別,確保系統(tǒng)能夠抵御各種安全威脅[6]。再次,需采用中文界面,結(jié)合用戶交互需求進行界面設(shè)計,保證界面清晰且操作簡潔。此外,應(yīng)確保系統(tǒng)可以與其他平臺共享數(shù)據(jù),系統(tǒng)頁面樣式統(tǒng)一,可以提供開放的數(shù)據(jù)接口,體現(xiàn)可擴展性。最后,應(yīng)達到可維護性要求,由管理員直接進行后臺數(shù)據(jù)在線操作,確認數(shù)據(jù)庫發(fā)生故障時不會出現(xiàn)信息丟失問題。
采用ThinkPHP 框架進行后臺管理系統(tǒng)設(shè)計,系統(tǒng)架構(gòu)見圖4,包含表現(xiàn)層、業(yè)務(wù)接口層和數(shù)據(jù)層。其中,表現(xiàn)層用于與用戶直接交互,能夠展示網(wǎng)站界面,在用戶和業(yè)務(wù)層間實現(xiàn)數(shù)據(jù)順利傳遞。利用ThinkPHP 框架,能夠提供模板視圖等,在引擎支持下簡化標簽定義,保證界面信息顯示簡潔、流暢[7]。業(yè)務(wù)層可以根據(jù)系統(tǒng)控制邏輯實現(xiàn)數(shù)據(jù)處理,實現(xiàn)不同的業(yè)務(wù)功能,確保表現(xiàn)層和數(shù)據(jù)層間能夠順利傳遞數(shù)據(jù)。利用Action 控制器提供操作入口,可以通過業(yè)務(wù)接口層將業(yè)務(wù)邏輯封裝到訪問對象類中,并通過在Helper 類中包裝子業(yè)務(wù)為控制器調(diào)用提供便利。實際進行業(yè)務(wù)處理,將建立實體對象,借助訪問層存取實體對象,與數(shù)據(jù)庫中的數(shù)據(jù)形成映射關(guān)系。數(shù)據(jù)層采用關(guān)系型數(shù)據(jù)庫,可以通過開放數(shù)據(jù)接口與Web 服務(wù)器傳遞數(shù)據(jù),并支持MySQL 等常見數(shù)據(jù)庫,提供各種數(shù)據(jù)服務(wù)。
在系統(tǒng)架構(gòu)支撐下,進一步完成系統(tǒng)功能模塊劃分,可以得到系統(tǒng)功能結(jié)構(gòu),為各項功能實現(xiàn)提供支持。從總體上來看,系統(tǒng)包含用戶登錄、網(wǎng)站管理等多項功能,可以同時滿足前臺和后臺操作要求,加強網(wǎng)站資訊信息實時傳遞和更新,為用戶提供流暢操作界面。實際在各功能模塊開發(fā)過程中,需要明確模塊操作流程,從而利用ThinkPHP 框架完成軟件應(yīng)用程序編寫。
3.2.1 用戶登錄
在用戶登錄模塊設(shè)計上,需要實現(xiàn)登錄、注冊等操作,建立的流程圖見圖5,進入系統(tǒng)登錄界面后,可以選擇注冊、登錄或修改密碼選項,進入對應(yīng)的子程序,系統(tǒng)將根據(jù)輸入信息執(zhí)行相關(guān)業(yè)務(wù)操作,并根據(jù)數(shù)據(jù)庫反饋確定能否成功登錄后臺管理首頁[8]。成功登錄后,可以查看個人信息或選擇退出。根據(jù)用戶權(quán)限,能夠在對應(yīng)頁面上進行業(yè)務(wù)操作。
3.2.2 資訊內(nèi)容管理
資訊內(nèi)容管理為系統(tǒng)核心功能,需要對各欄目下的資訊內(nèi)容進行管理,完成文章增刪、排序、推送等多項操作。進入網(wǎng)站管理菜單后,可以通過下拉框獲得各欄目信息,也可以直接點擊“搜索”按鈕在彈出的對話框中輸入欄目名稱。界面顯示的信息包含文章ID、標題、排序號、來源、創(chuàng)建時間、預(yù)覽狀態(tài)等等[9]。在資訊內(nèi)容管理方面,可以根據(jù)文章所屬欄目進行選擇,包含體育欄目、新聞欄目等多個欄目,如圖6 所示,需要在對應(yīng)欄目下進行文章內(nèi)容編輯。如選擇“添加文章”按鈕,需要完成對應(yīng)內(nèi)容填寫后提交,成功后表單將存儲到數(shù)據(jù)庫表中。對文章進行排列,需要填寫排序號,完成數(shù)據(jù)庫內(nèi)信息更新。點擊“文章預(yù)覽”按鈕,資訊內(nèi)容將通過前端頁面顯示,供用戶瀏覽。點擊“文章推送”按鈕,首先需要完成推薦位的選擇,然后將對應(yīng)ID 更新到數(shù)據(jù)庫表中。
3.2.3 網(wǎng)站管理
在網(wǎng)站管理方面,在網(wǎng)站菜單欄中點擊“后臺菜單”選項,可以進入配置界面。登錄對應(yīng)界面后將顯示基本配置信息,對站點信息進行修改,然后根據(jù)系統(tǒng)提示確認是否自動完成數(shù)據(jù)庫備份和生成緩存頁面,提交表單信息后將結(jié)束站點配置。選擇緩存配置,可以手動對頁面緩存進行更新。
在系統(tǒng)設(shè)計階段,數(shù)據(jù)庫作為重要組成部分,需要為各模塊功能實現(xiàn)提供數(shù)據(jù)支撐。系統(tǒng)選用MySQL 數(shù)據(jù)庫,根據(jù)系統(tǒng)需求采用E-R 模型完成概念結(jié)構(gòu)設(shè)計,并結(jié)合實體聯(lián)系建立數(shù)據(jù)間的關(guān)聯(lián)。作為典型的數(shù)據(jù)庫管理系統(tǒng),MySQL 為開源軟件,能夠通過SQL 語言進行數(shù)據(jù)庫管理,為多用戶、多線程服務(wù)提供支持,并且與PHP 編譯語言較好結(jié)合[10]。應(yīng)用該軟件進行后臺管理系統(tǒng)的數(shù)據(jù)庫設(shè)計,將各種數(shù)據(jù)需求抽象為數(shù)據(jù)模型,完成系統(tǒng)定義,可以得到不同的數(shù)據(jù)結(jié)構(gòu)。而后臺管理系統(tǒng)的實體較多,實際在系統(tǒng)設(shè)計時僅對主要功能實體展開分析。以網(wǎng)站文章實體為例,作為網(wǎng)頁核心組成,包含編號ID、文章標題等諸多屬性,見圖7。在內(nèi)容實體上,包含文章ID、創(chuàng)建時間等屬性信息。除此之外,用戶實體也是重要部分,利用用戶編號ID 作為唯一身份標識,另外包含登錄名、密碼、真實姓名、權(quán)限狀態(tài)等諸多屬性,僅管理員及以上身份才能進行模塊信息查看和維護。在后臺菜單設(shè)置上,需要采用菜單實體,包含欄目編號、菜單名稱、菜單ID、排序序號等屬性信息。在前端文章位置展示方面,需要采用推薦位實體,包含小圖推薦、編號ID、狀態(tài)、更新時間等屬性。
根據(jù)E-R 圖確定數(shù)據(jù)庫表關(guān)系,能夠生成數(shù)據(jù)庫系統(tǒng)表目錄,包含表名和相關(guān)描述信息。建立用戶表cms_admin、菜單表cms_menu 等相關(guān)數(shù)據(jù)表,羅列字段名稱、數(shù)據(jù)類型、主鍵等信息,可以根據(jù)表間的外鍵關(guān)系整理得到數(shù)據(jù)表關(guān)系圖。在完成數(shù)據(jù)表關(guān)聯(lián)的基礎(chǔ)上,對系統(tǒng)各功能模塊進行調(diào)用,能夠根據(jù)實體關(guān)聯(lián)完成對應(yīng)數(shù)據(jù)表的讀寫操作,確保各項功能順利實現(xiàn)。
在系統(tǒng)實現(xiàn)階段,選用阿里云主機作為服務(wù)器端,配備CentOS 64 位系統(tǒng),數(shù)據(jù)庫為MySQL5.5 版本。通過對云主機IP 進行綁定,輸入購置域名,能夠?qū)ο到y(tǒng)進行直接訪問。完成站點和數(shù)據(jù)庫信息配置后,將開發(fā)文件上傳至服務(wù)器,可以實現(xiàn)各模塊功能。
對系統(tǒng)各項功能進行測試,首先進行表單驗證,確認在完成用戶名登錄和密碼驗證后,能夠在管理員權(quán)限范圍內(nèi)順利完成數(shù)據(jù)添加和圖片上傳,并在輸入格式和內(nèi)容出現(xiàn)錯誤時獲得系統(tǒng)提示。而在資訊內(nèi)容獲取測試中,能夠順利建立頁面鏈接,不存網(wǎng)址不可達或錯誤等問題。此外,對系統(tǒng)數(shù)據(jù)庫進行讀寫測試,確認能夠?qū)崿F(xiàn)數(shù)據(jù)增刪、修改等操作。
在系統(tǒng)性能測試上,根據(jù)系統(tǒng)開發(fā)需求可知重點需保證后臺能夠?qū)η岸苏埱筮M行快速響應(yīng),及時更新界面內(nèi)容。從測試結(jié)果來看,網(wǎng)站訪問速度、客戶端瀏覽顯示效果等均符合要求,能夠給用戶帶來良好瀏覽體驗。此外,需要對系統(tǒng)兼容性進行測試,確認與終端的Mac 操作系統(tǒng)、Windows 操作系統(tǒng)等主流系統(tǒng)兼容,同時也能對前端的IE、UC 瀏覽器、搜狗瀏覽器等多種瀏覽器進行兼容,滿足不同終端操作使用需求,可以保證系統(tǒng)擁有良好擴展性。
ThinkPHP 框架是基于MVC 三層架構(gòu)所形成的,能夠擺脫對核心基類庫的依賴,通過業(yè)務(wù)數(shù)據(jù)封裝簡化界面顯示操作,為前端網(wǎng)頁輸出提供便利。應(yīng)用該框架進行資訊類網(wǎng)站后臺管理系統(tǒng)設(shè)計,需要根據(jù)系統(tǒng)用戶操作需求確定開發(fā)的功能模塊,在建立由表現(xiàn)層、業(yè)務(wù)接口層和數(shù)據(jù)層構(gòu)成的系統(tǒng)架構(gòu)的基礎(chǔ)上,完成各功能模塊流程設(shè)計,最終可以在數(shù)據(jù)庫支撐下順利實現(xiàn)系統(tǒng)各項操作。后續(xù)對系統(tǒng)功能進行改進,可以直接調(diào)整各層編碼,有效提高系統(tǒng)代碼復(fù)用性。