999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于MVC 模式的新聞管理系統的設計與實現

2023-08-16 05:01:22蔣先梅
無線互聯科技 2023年11期
關鍵詞:數據庫模型

蔣先梅

(江蘇聯合職業技術學院徐州經貿分院,江蘇 徐州 221004)

0 引言

PHP 即“超文本預處理器”,是一種開源的、免費使用的、運行在服務器端的腳本語言[1]。 PHP 吸納多個語言的優點,創造出自己獨特方便快速的語法風格。 PHP 支持面向過程和面向對象這兩種開發方式。PHP 和HTML 可以相互嵌入使用,修改快捷、簡易、實用性強、跨平臺性好、方便移植,在Web 系統開發領域中占據了重要的地位[1]。 MVC 是一種軟件開發模式,已廣泛流行于系統的開發與應用中。 隨著互聯網高速發展,Web 應用的功能需要也越來越復雜,MVC 在Web 開發領域也備受歡迎。

1 MVC 模式簡介

1.1 認識MVC

MVC 全稱ModelViewController,是一種軟件設計思想典范。 Model(數據模型)、View(視圖)、Controller(控制器)三大核心模塊在Web 系統起到至關重要的作用,分別處理各自范圍內的事情[1]。 數據模型只與數據庫有關系,只處理應用程序數據邏輯部分,數據庫的數據增刪改查在此模塊內實現。 視圖把從數據模型中獲取的數據,進行格式化展示到瀏覽器的前端頁面上。 控制器是整個系統的調度中心,統一協調各模塊之間的工作。 控制器經常從視圖中獲取用戶請求數據,把數據送入模型中進行處理,處理用戶交互任務。 當客戶端(瀏覽器)單擊頁面表單請求命令,控制器獲取表單請求,調用Model 來處理數據, 調用View 來包裝數據,需要調用哪些模塊由控制器來決定,最后通過瀏覽器向客戶返回請求結果。 MVC 的工作詳細流程如圖1 所示。 三大模塊的協作工作原理如一個公司的運作,Controller 如管理層只負責整個公司的調度工作,Model 如財務部只負責管理錢款流動,View 如市場部負責外部運作、包裝。

圖1 MVC 的工作流程

1.2 MVC 框架

在軟件系統設計中MVC 框架就是一個代碼規劃的骨架,設計一個所有項目通用的底層代碼,為了提高項目開發的效率。 以房地產開發商開發的商品房來類比,MVC 框架就如開發商把房子的結構功能已完成,只是個毛坯房,業主可以根據需要去裝修,需要一個奶茶店時,只需要把房子按奶茶店的布置去裝修,而不需要重新蓋一個房子。

MVC 設計模式可以把整個項目分成應用(Application) 和 框 架(Framework) 兩 大 部 分, 在Application 應用中處理與當前站點相關的業務邏輯,在Framework 框架中封裝所有項目的底層代碼[1]。在一個MVC 框架中,往往可能有多個相對獨立的應用站點,最典型的就是一個網站的前臺界面(對外的)和后臺管理界面(對內的)。 一個平臺就是一個相對獨立的應用(站點,項目)。

2 新聞管理系統的設計

2.1 新聞管理系統總體設計

本文的新聞管理系統是基于PHP 技術,采用MVC 思想進行設計。系統的目錄結構按 App, Frame,Public,index. php 進行分配。 App 中Home 目錄代表網站的前臺為用戶提供服務,Admin 目錄代表網站的后臺為管理員提供管理功能。 前臺Home 目錄和后臺Admin 目錄:Controller 主要存放模塊的控制器文件,Model 主要存放模塊的模型類文件,View 主要存放模塊的視圖文件。 App 中Conf 目錄中放置配置文件信息。 Frame為框架類庫目錄,存放框架初始化類、基礎控制器類、基礎模型類、數據庫工具類、工廠模型類底層代碼文件。 Public 為公開文件目錄,主要存放css,images 和js文件。 index.php 為系統的入口文件。

為了更好演示MVC 設計模式中各模塊的工作原理,本文設計的新聞管理系統整體功能較為簡單,但完整展示了數據的基本操作功能。 前臺模塊的主要功能是新聞瀏覽和新聞檢索功能;后臺模塊是新聞管理模塊,可以對新聞后臺的數據進行添加、刪除、修改的功能操作。 新聞管理系統總體設計結構如圖2所示。

圖2 系統總體設計結構

2.2 數據庫設計

數據庫的設計在整個系統開發中起到至關重要的作用。 對本系統功能的需求分析后,數據庫內容設計主要包括兩個部分:一是創建管理員表用于判斷管理員身份;二是創建新聞表用于存儲新聞的詳細信息。

在MySQL 中創建一個news 數據庫,用于保存系統中的數據。 成功創建數據庫后,“use news”選擇news 數據庫,在數據庫中創建admin 管理員表和news新聞表。 在管理員表admin 中設置id 編號、name 用戶名和password 密碼字段。 在新聞表news 中設置id新聞編號、title 新聞標題、content 新聞內容、addtime發布時間字段如圖3 所示。 兩張表都成功創建完成后,需要分別為它們添加測試數據進行測試。

圖3 新聞表結構

3 新聞管理系統的實現

3.1 本系統框架基礎類

本系統基礎框架按照前面對MVC 框架分析進行搭建。 如果客戶每次請求,都去包含所有類文件,會造成服務器內存浪費,程序的加載速度緩慢。 可以使用類的自動加載,來實現類文件的按需加載。 常量在任何地方都可以使用,而變量只能在作用域下使用。本文把MVC 中常用的目錄定義成常量,可以簡化目錄路徑的編寫。 系統的初始化階段需要完成:配置信息、路由參數、目錄常量、類的自動加載、請求分支操作。 初始化的工作可以封裝成一個Frame. class. php框架基礎類來完成任務。 將框架基礎類定義為最終的框架初始化類final class Frame{},在類中定義公共的靜態的框架初始化方法public static function run();定義self::initConfig()初始化配置信息;self::initRoute()初始化路由參數;self::initConst()初始化目錄常量;self::initAutoload()初始化類的自動加載;self::initDispatch()初始化請求分支。 調用run()方法就可以直接執行調用5 個初始化功能操作。

3.2 配置文件與基礎類

框架基礎類中初始化配置信息需要數據庫配置信息和路由默認參數信息,在Conf 中創建Conf.php,在文件中配置數據庫連接信息、默認路由參數。 在Frame 目錄中封裝一個數據庫操作類Db. class. php,實現從配置文件中得到配置信息,成功連接數據庫。

在MVC 設計模式中,每一個模塊都是一個控制器,多個控制器之間有一些公共的屬性和方法。 在Frame 目錄中,創建基礎控制器類BaseController.class.php 文件,將公共的基礎代碼提煉出來放在基礎控制器類中。 在創建基礎控制器類之后,Home 和Admin 模塊的控制器類都需要繼承基礎控制器類。

每個數據表都對應一個模型,多個模型之間有一些公共代碼。 在Frame 目錄中,創建基礎模型類BaseModel.class.php 文件,將公共的基礎代碼提煉出來放在基礎模型類中。 數據表admin 和news 的模型類都需要繼承基礎模型類。

在 Frame 目錄中創建一個工廠模型類FactoryModel.class.php 文件,該類可以專門生產模型類的對象。

3.3 后臺模塊

在完成MVC 模式的基礎框架搭建后,接下來利用該框架完成后臺模塊的開發。 后臺模塊實質上就是對新聞數據的增刪改查操作。 在Admin 目錄中分別建立View,Controller,Model 3 個文件夾進行編寫功能代碼文件。 引入“平臺”概念后,客戶的每次請求,必須帶3 個參數,平臺參數,控制器參數、用戶動作。Platform 稱為P 參數,controller 稱為c 參數,action 簡稱a 參數。 因篇幅所限,下面以新聞信息的修改為例演示MVC 分工運行過程。

在后臺模塊的首頁視圖中,選擇需要修改新聞的鏈接“修改” 進行跳轉,帶著新聞唯一的編號調轉到Admin 平臺的News 控制器的edit 動作方法。 在News 控制器中edit動作方法中,獲取地址欄id 編號 $id= $_GET['id'];創建新聞模型類對象$modelObj = FactoryModel::getInstance("NewsModel");獲取指定id 數據$arr=$modelObj->fetchOne( $id)。 關于需要修改的這條新聞數據需要從Model 中調用,去新聞模型類NewsModel 獲取單行數據public function fetchOne( $id),構建查詢的SQL 語句$sql = "select ? from news where id={ $id}"; 執行SQL 語句,返回一維數組 。 修改的新聞的詳細信息就返回到News 控制器中,包含修改的視圖文件include VIEW_PATH."edit.html"進行顯示并修改。 修改后的信息需要再次重新寫入數據庫中進行存儲。

調轉到Admin 平臺的News 控制器的update 動作方法,再調用Model 中update 方法進行修改數據庫中的數據。

3.4 前臺模塊

前臺界面設計風格簡潔,操作簡易,用戶只能瀏覽、閱讀和檢索新聞。 用戶根據時間顯示的順序可以選擇自己感興趣的新聞標題,點擊進去查閱詳細信息;也可以利用模糊匹配查找自己感興趣的新聞信息。

4 結語

本文用PHP 技術基于MVC 設計模式實現了一個新聞管理系統。 MVC 設計結構清晰明了,實現了模型、視圖、控制器三者分離,便于提高代碼的可維護性和功能擴展性。

猜你喜歡
數據庫模型
一半模型
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
3D打印中的模型分割與打包
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
FLUKA幾何模型到CAD幾何模型轉換方法初步研究
主站蜘蛛池模板: 在线日韩日本国产亚洲| 久久久精品国产SM调教网站| 亚洲一区二区成人| 国内精品免费| 欧美亚洲国产日韩电影在线| 91黄视频在线观看| 色香蕉影院| 精品国产中文一级毛片在线看 | 色综合热无码热国产| 极品国产在线| 狠狠五月天中文字幕| 91日本在线观看亚洲精品| 久久激情影院| 操美女免费网站| 精品国产91爱| 久久久久人妻一区精品色奶水| 国产成人综合网| 黑人巨大精品欧美一区二区区| 爽爽影院十八禁在线观看| 欧美伦理一区| 一级做a爰片久久免费| 国产高清在线观看| 亚洲首页在线观看| 免费无码一区二区| 久久精品无码国产一区二区三区| 久久久国产精品无码专区| 国产精品免费久久久久影院无码| 国产成人凹凸视频在线| 国产欧美日韩一区二区视频在线| 国产成人AV综合久久| 国产黄在线观看| 91精品啪在线观看国产60岁| 一本久道久久综合多人| 国产色图在线观看| 国产爽妇精品| 国产好痛疼轻点好爽的视频| 亚洲色图欧美在线| 六月婷婷精品视频在线观看| 国产福利不卡视频| 一级毛片免费播放视频| 亚洲AV色香蕉一区二区| 日韩精品中文字幕一区三区| 免费A级毛片无码免费视频| 在线观看国产网址你懂的| 国产精品无码翘臀在线看纯欲| 亚洲无码免费黄色网址| 久久精品无码中文字幕| 欧美不卡视频一区发布| 久久国产毛片| 亚洲福利一区二区三区| 国产97视频在线观看| 天天躁日日躁狠狠躁中文字幕| 日本亚洲成高清一区二区三区| 国产91无码福利在线| 国产乱子伦手机在线| 中文字幕色在线| lhav亚洲精品| 成人一区在线| 中文字幕 欧美日韩| 国产美女精品一区二区| 久久先锋资源| 国国产a国产片免费麻豆| 国产成人h在线观看网站站| 日韩欧美视频第一区在线观看| 亚洲一区毛片| 亚洲国产成人精品一二区| 国产成人精品2021欧美日韩| 久操中文在线| 国产精品美女在线| 青青草久久伊人| 在线免费不卡视频| 国产美女久久久久不卡| 亚洲啪啪网| 看av免费毛片手机播放| 男人天堂伊人网| 福利片91| 亚洲精品在线影院| 国产va在线| 久久伊人色| 玩两个丰满老熟女久久网| 乱人伦99久久| A级毛片无码久久精品免费|