国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于laravel框架的新聞發(fā)布系統(tǒng)的設(shè)計

2019-10-08 11:55阮衛(wèi)華何正焱
軟件 2019年8期

阮衛(wèi)華 何正焱

摘 ?要: 近年來,隨著互聯(lián)網(wǎng)的興起和高速發(fā)展,信息量呈現(xiàn)出爆炸式的增長,人們對信息資訊的需求也在不斷地增加,傳統(tǒng)媒體越發(fā)站不住腳跟,紛紛擁抱互聯(lián)網(wǎng)新媒體。本論文據(jù)此提出了新聞發(fā)布系統(tǒng)的設(shè)計與開發(fā),在現(xiàn)有系統(tǒng)的基礎(chǔ)上進行考察、分析,旨在設(shè)計開發(fā)出現(xiàn)代化的新聞發(fā)布系統(tǒng),探討新聞發(fā)布系統(tǒng)的可發(fā)展方向。對國內(nèi)外新聞發(fā)布系統(tǒng)的發(fā)展現(xiàn)狀進行了詳細(xì)的分析對比之后,擯棄傳統(tǒng)的人工管理方式,采用基于PHP和MySQL的動態(tài)頁面靜態(tài)化等技術(shù)實現(xiàn)新聞文章的自動化管理。并采用laravel框架將后臺視圖層和數(shù)據(jù)模型分離隔離,專注業(yè)務(wù)邏輯。同時,本系統(tǒng)經(jīng)過對比“Google News”與“網(wǎng)易新聞”等多家新聞網(wǎng)站,總結(jié)了“網(wǎng)易新聞”網(wǎng)站在多設(shè)備適配問題上與其他網(wǎng)站的不同以及國內(nèi)外新聞內(nèi)容來源的區(qū)別之后,使用HTML5的多個新特性以及Bootstrap前端框架實現(xiàn)網(wǎng)站的響應(yīng)式布局,實現(xiàn)“用戶自主上傳新聞”創(chuàng)新模塊。

關(guān)鍵詞: 新聞發(fā)布系統(tǒng);響應(yīng)式布局;PHP;laravel

中圖分類號: TP311.52 ? ?文獻(xiàn)標(biāo)識碼: A ? ?DOI:10.3969/j.issn.1003-6970.2019.08.013

本文著錄格式:阮衛(wèi)華,何正焱. 基于laravel框架的新聞發(fā)布系統(tǒng)的設(shè)計[J]. 軟件,2019,40(8):5961+65

【Abstract】: In recent years, with the rise and rapid development of the Internet, the amount of information has shown explosive growth, and people's demand for information is also increasing. Traditional media are increasingly unable to stand on their feet, and they are embracing new Internet media. This paper puts forward the design and development of the press release system, on the basis of the existing system to investigate, analysis, in order to design and develop a modern press release system, to explore the development of the press release system. After the detailed analysis and comparison of the development status of news release system at home and abroad, the paper abandons the traditional manual management and adopts the static technology of dynamic pages based on PHP and MySQL to realize the automatic management of news articles. Laravel framework is adopted to separate background view layer and data model and focus on business logic. At the same time, this system through comparing "Google News" and "netease News" and so on several News websites, summed up the "netease News" website on more equipment adaptation problem is different from other web sites, and the difference between domestic and foreign News sources, use multiple new features in HTML 5 and Bootstrap front-end framework implements the response of the site layout, implement the "user uploaded to News" innovation module.

【Key words】: News publishing system; Responsive layout; PHP; Laravel

0 ?引言

傳統(tǒng)的新聞網(wǎng)站采用靜態(tài)信息發(fā)布,僅僅是新聞查閱者單方面從網(wǎng)站獲取網(wǎng)站信息,無法達(dá)到互動的目的[1]。而隨著互聯(lián)網(wǎng)的興起和發(fā)展,靜態(tài)站點的開發(fā)與維護正在變得越來越困難。一方面信息在不斷地增加與變化,使得站點維護人員不得不經(jīng)常修改代碼;另一方面由于靜態(tài)網(wǎng)頁不能達(dá)到與新聞查閱者有效交互的目的,使得人們感到越來越無趣,從而降低新聞網(wǎng)站的瀏覽量。

當(dāng)前的大多數(shù)新聞網(wǎng)站采用基于數(shù)據(jù)庫的動態(tài)頁面來實現(xiàn)文章發(fā)布系統(tǒng)。這在一定程度上解決了維護困難的問題。但是,當(dāng)數(shù)據(jù)堆積起來后,用戶的查閱體驗會因訪問速度越來越慢而受到極大的影響。因此,使用動態(tài)頁面靜態(tài)化技術(shù)將動態(tài)頁面生成對應(yīng)的靜態(tài)頁面,可以使用戶的查閱體驗大大提升。此外,人們的生活節(jié)奏正在加快,對新聞資訊的需求已經(jīng)不僅僅止于重大新聞[2]。越來越多的人對身邊發(fā)生的小事感興趣,而傳統(tǒng)新聞行業(yè)單方面向新聞查閱者傳播新聞的模式顯然已經(jīng)不能滿足當(dāng)前人們的需求[3]。

1 ?基于laravel框架的系統(tǒng)架構(gòu)

1.1 ?laravel框架簡介

laravel簡潔、優(yōu)雅的特性,使得在書寫代碼的過程中,系統(tǒng)的代碼實現(xiàn)流程得以簡化。與此同時,其對RESTful的良好支持對本系統(tǒng)前后端分離的實現(xiàn)有著很大的幫助。同時laravel的設(shè)計思想是當(dāng)前所有主流的PHP框架中最先進的,非常適合應(yīng)用各種開發(fā)模式。如IoC容器、依賴注入等[7]。其對com-poser的良好支持使得項目依賴的管理更為簡便,在整個系統(tǒng)開發(fā)的流程中,起到至關(guān)重要的作用。

1.2 ?系統(tǒng)特點及其架構(gòu)

1.2.1 ?系統(tǒng)邏輯分析與結(jié)構(gòu)設(shè)計

系統(tǒng)從邏輯上可劃分為新聞的前端展示頁面和管理員的后臺管理頁面。前端展示頁面為新聞查閱者提供了新聞文章頁面,供其查閱新聞信息;后臺管理頁面為后臺管理員提供了后臺新聞信息管理頁面,供其管理新聞信息。

通過對系統(tǒng)的邏輯分析,決定將系統(tǒng)分為前端展示系統(tǒng)和后臺管理系統(tǒng)兩個相互獨立的子系統(tǒng)。其中,前端展示系統(tǒng)對所有用戶開發(fā),任何人均可訪問前端展示系統(tǒng)進行新聞信息的查閱。而后臺管理系統(tǒng)只對指定的管理人員開發(fā),后臺管理員只能通過在瀏覽器輸入隱藏的管理員入口地址,才能進入管理員登錄頁面。輸入管理員信息,系統(tǒng)自動與數(shù)據(jù)庫的數(shù)據(jù)進行校驗,校驗通過后,才能進入管理員系統(tǒng)。系統(tǒng)結(jié)構(gòu)圖如圖1所示。

1.2.2 ?服務(wù)器的架構(gòu)設(shè)計

后臺服務(wù)器使用Nginx實現(xiàn)反向代理和負(fù)載均衡,使用一臺主機作為負(fù)載均衡服務(wù)器,兩臺主機作為web服務(wù)器。用戶的請求首先發(fā)送到負(fù)載均衡服務(wù)器上,負(fù)載均衡服務(wù)器再以輪詢方式將請求輪流分散到兩個web服務(wù)器上,以減小服務(wù)器的訪問壓力。如圖2所示。

2 ?API接口設(shè)計在本系統(tǒng)中的應(yīng)用

本系統(tǒng)將前端的視圖頁面和后端的業(yè)務(wù)邏輯分離開來,使用了API接口在不暴露源碼的情況下將后臺的具體功能暴露出來。而近年來,RESTful風(fēng)格的API因其輕量、直接基于http、數(shù)據(jù)描述簡單和面向資源的優(yōu)點開始流行起來。

根據(jù)功能模塊分析,將接口分為用戶接口、管理員接口、新聞接口、評論接口、上傳內(nèi)容審核接口五大類。

用戶接口用于用戶的登錄、注冊、信息修改。由于用戶的登錄注冊以及用戶對自身信息的修改需要用戶提交數(shù)據(jù),并且對數(shù)據(jù)的安全性要求較高,因此,對用戶的登錄接口使用POST方法最為合適。接口在接收到用戶提交的數(shù)據(jù)后,對數(shù)據(jù)進行檢測、處理,再根據(jù)處理的結(jié)果返回對應(yīng)的json信息。

管理員接口只有登錄接口,不開發(fā)注冊接口。登錄接口與用戶登錄接口相似,不再贅述。

新聞接口用于新聞的查閱、新聞的檢索、新聞的增刪與修改。新聞搜索接口可以通過get方法訪問,可供新聞查閱者和后臺管理員用于檢索新聞數(shù)據(jù)。新聞的增加接口首先要判斷session中是否有登錄信息,如果沒有,則直接返回表示錯誤的json數(shù)據(jù)。如果有,要對登錄者的身份來決定數(shù)據(jù)的去向。如果登錄者是登錄用戶,則將提交的新聞內(nèi)容轉(zhuǎn)交給上傳內(nèi)容審核模塊處理。如果登錄者是管理員,則不需要對數(shù)據(jù)審核,直接對數(shù)據(jù)進行檢測,并保存到數(shù)據(jù)庫中。保存成功后,返回json數(shù)據(jù)。

評論接口分為添加評論接口和刪除評論接口。添加評論接口僅開放給登錄用戶使用,需要先從session中獲取用戶的登錄狀態(tài),如果獲取不到登錄信息,說明用戶尚未登錄,直接返回錯誤信息。如果獲取到登錄信息,將用戶提交的評論信息或上傳的新聞內(nèi)容進行數(shù)據(jù)監(jiān)測,處理加工后,保存到數(shù)據(jù)庫中。成功保存后,返回對應(yīng)的json信息。刪除評論接口僅開放給管理員使用,首先驗證管理員是否登錄,尚未登錄則直接返回錯誤信息。如果管理員已登錄,則根據(jù)用戶上傳的評論id來把數(shù)據(jù)庫中對應(yīng)的評論刪除。最后判斷數(shù)據(jù)庫的刪除狀態(tài),并返回對應(yīng)的json數(shù)據(jù)。

上傳內(nèi)容審核接口僅獲取來自用戶自己上傳的數(shù)據(jù)內(nèi)容,通過采用大數(shù)據(jù)獲取來的敏感詞數(shù)據(jù)庫作為關(guān)鍵字。當(dāng)接收到來自用戶上傳的新聞內(nèi)容時,將內(nèi)容進行全文搜索,若內(nèi)容中包括關(guān)鍵字,則直接返回錯誤信息,將該發(fā)布請求駁回。若內(nèi)容通過審核,則對數(shù)據(jù)進行簡單的處理后,存到數(shù)據(jù)庫中,并返回對應(yīng)的json信息。

3 ?新聞模塊的實現(xiàn)

3.1 ?新聞?wù)故?/p>

用戶訪問前端展示系統(tǒng)的首頁時,就是通過新聞模塊的新聞?wù)故緛慝@取新聞數(shù)據(jù)的。首先構(gòu)造出查詢構(gòu)造器DB::table(‘news),根據(jù)前端展示的不同需求使用where方法對不同的字段組合進行查詢。比如,獲取“時政焦點”展示模塊時,系統(tǒng)自動過去最新的、點擊量最高的若干條新聞,并通過laravel的模板渲染到前端頁面中。獲取“時政焦點”新聞數(shù)據(jù)具體的實現(xiàn)如下:DB::table(‘news)-> where(‘category,‘政治)->limit($number)->get();其他的展示模塊的具體實現(xiàn)類似,不在贅述。

3.2 ?新聞發(fā)布

新聞發(fā)布分為用戶自主上傳和后臺管理員發(fā)布,本模塊實現(xiàn)了后臺管理員的新聞發(fā)布,用戶自主上傳由于其系統(tǒng)開發(fā)后期的可拓展性,單獨列成一個模塊,方便修改。新聞發(fā)布首先要驗證管理員的身份,由于本系統(tǒng)的管理員登錄依賴session,在本模塊中則通過session(‘a(chǎn)dmin_name)獲取管理員的登錄信息。獲取到管理員信息后,通過$request-> input()獲取前端$.ajax()提交的表單信息。使用預(yù)定義好的數(shù)據(jù)檢測方法對數(shù)據(jù)進行類型檢測,類型 ?監(jiān)測通過后,使用構(gòu)造器的insert()將數(shù)據(jù)存入數(shù)據(jù)庫中。

3.3 ?新聞更新及刪除

新聞的更新與刪除均要驗證管理員身份,成功后即可通過構(gòu)造器的update()或delete()對數(shù)據(jù)庫進行更新或刪除。

3.4 ?新聞檢索

新聞檢索開放給包括管理員在內(nèi)的所有用戶。在前端頁面提供檢索框供用戶輸入檢索關(guān)鍵字。后臺通過$request->input()獲取到關(guān)鍵字,然后構(gòu)造查詢構(gòu)造器,再通過查詢構(gòu)造器的where(‘字段名, ‘like,‘%關(guān)鍵字%)對新聞的多個有效字段進行模塊檢索。然后通過get()獲取的新聞數(shù)據(jù),并使用laravel的模板渲染到前端頁面中。

考慮到新聞系統(tǒng)的可擴展性,本系統(tǒng)的搜索功能主要使用了Sphinx搜索引擎。Sphinx具有高速索引、高速搜索、高可用性的特點,還能提供良好的相關(guān)性排名,對MySQL的支持良好。其次,在部分搜索功能的實現(xiàn)上,僅僅依靠了數(shù)據(jù)庫的模糊查詢。

使用Sphinx步驟如下:第一步,建立好數(shù)據(jù)庫并導(dǎo)入數(shù)據(jù);第二步,建立配置文件;第三步,生成索引;第四步,啟動Sphinx;5第五步,調(diào)用API進行查詢。

4 ? 結(jié)束語

在新聞的網(wǎng)絡(luò)化發(fā)展過程中,其傳播方式已經(jīng)大大改變。從以前的街頭買報才能獲取最新的數(shù)量有限的新聞資訊,到現(xiàn)在足不出門打開手機就能看到無數(shù)的新聞資訊。人們獲取新聞資訊已經(jīng)比以前便利了很多。世界另一端發(fā)生的事很快就能通過屏幕獲取到。

隨著新聞媒體在新技術(shù)大環(huán)境下的不斷嘗試。移動設(shè)備日益成為決定性因素,誰掌握了移動端誰就走在了其他同行的前面??萍脊竞蜕缃幻襟w進軍新聞業(yè)的步伐加快,人們對新聞的需求不再僅僅是單方面從新聞媒體獲取新聞資訊,越來越多的社交元素加入到互聯(lián)網(wǎng)新媒體中。

本文就根據(jù)由時下最火小視頻應(yīng)用“抖音”獲取的靈感,通過查詢大量有關(guān)文獻(xiàn)后,介紹了如何使用基于PHP和MySQL的web技術(shù)設(shè)計并開發(fā)出一個帶有“全民創(chuàng)作”模塊的新聞發(fā)布系統(tǒng)。但在“全民創(chuàng)作”模塊的實現(xiàn)上,只能采用現(xiàn)有的關(guān)鍵詞過濾手段,在對上傳內(nèi)容的審核方面,仍然有一段路要走。

隨著人們對新聞資訊需求的不斷增加,將會有越來越多的新聞媒體關(guān)注到傳播方式變革的急迫性。大數(shù)據(jù)時代的來臨,將會讓我們對內(nèi)容審核有著更完美的解決方案。

參考文獻(xiàn)

[1] 鄔恩杰, 張靜. 基于XML文章發(fā)布系統(tǒng)的設(shè)計與開發(fā)[J]. 電腦編程技巧與維護, 2016(14): 20-22.?閆瑾. “今日頭條”的內(nèi)容生產(chǎn)和分發(fā)[J/OL]. 新媒體研究, 2018(7): 32-34.

[2] 趙旭劍, 鄧思遠(yuǎn), 李波等. 互聯(lián)網(wǎng)新聞話題特征選擇與構(gòu)建[J]. 軟件, 2015, 36(7): 17-20.

[3] 曹政. 基于Mahout框架的Hadoop平臺作業(yè)日志分析平臺設(shè)計與實現(xiàn)[J]. 軟件, 2015, 36(11): 43-47.

[4] 張潔瓊. 智媒化對新聞傳播的影響研究[J/OL]. 新媒體研究, 2018(07): 35-36.

[5] 施建華. Laravel框架下電商威客平臺設(shè)計及實現(xiàn)[J]. 宜賓學(xué)院學(xué)報, 2017(6): 23-47.

[6] 胡丹, 張緒鴻. 基于HTML5技術(shù)的十九大微傳播產(chǎn)品[J]. 青年記者, 2018(09): 83-84.

[7] 秦奮. 移動環(huán)境下RESTful WebService的研究與設(shè)計[D]. 北京: 北京工業(yè)大學(xué), 2015

[8] Joe Barry. Delaunay triangular mesh in convex polygons[J]. SIAM J. Sci. Stat. Comput, 1986, 7(2): 514-539.

[9] 鄭迪文, 沈立煒, 彭鑫等. 基于AJAX的WEB應(yīng)用構(gòu)件組裝技術(shù)及工具[J]. 計算機科學(xué), 2014(11): 1-32.

[10] 張琳. HTML5與CSS3在網(wǎng)頁視覺元素中的應(yīng)用研究[J]. 九江學(xué)院學(xué)報(自然科學(xué)版), 2018, 33(01): 72-85.

[11] 章蓬陽, 邵帥. Android 異步框架的研究與設(shè)計[J]. 軟件, 2016, 37(02): 150-154.

[12] 姚云飛, 杜洪波, 梁建輝. 基于 SpringMVC 框架畢業(yè)設(shè)計管理系統(tǒng)設(shè)計[J]. 軟件, 2018, 39(01): 91-93.

[13] 李果, 劉任任. 基于地名識別的地方新聞分類方法[J]. 軟件, 2018, 39(4): 73-76.

方正县| 五峰| 金门县| 绥德县| 大新县| 洛宁县| 铜山县| 滦平县| 宜宾县| 新巴尔虎右旗| 武邑县| 广宁县| 贺兰县| 文登市| 留坝县| 垣曲县| 太仆寺旗| 平阴县| 南雄市| 电白县| 诸城市| 栾川县| 横峰县| 哈尔滨市| 绍兴县| 饶阳县| 泾源县| 合江县| 永兴县| 长岭县| 安国市| 涟源市| 汽车| 耒阳市| 苏尼特左旗| 宝鸡市| 高唐县| 治多县| 西宁市| 洛川县| 宁城县|