0x01 總體設計
留言模塊主要包括以下幾個子模塊:
- 模型模塊(Model):模型類中封裝好用戶操作數據庫的各種方法,供控制器調用。
- 視圖模塊(View):Web視圖頁面收集用戶留言。
- 控制器模塊(Controller):控制器處理Web視圖頁面收集的數據。
0x02 詳細設計
(1)查看留言記錄
- 在控制器的selete()方法中,調用模型類中封裝的getSelete()方法查詢數據表中所有的數據,並顯示到前端。
- 在Web頁面中循環遍歷返回的索引數組,即可顯示留言列表。
(2)添加留言記錄
- 在前端頁面的form表單中獲取用戶輸入的數據。
- 在控制器的add()方法中,調用模型類中封裝的getInsert()方法向數據表中添加數據。
- 前端頁面跳轉到留言列表中。
(3)修改留言記錄
- 當要修改數據時,先查找要修改的內容,把查找到的數據放到表單中。
- 在控制器的update()方法中,調用模型類中封裝的getUpdate()方法對留言數據進行修改。
(4)刪除留言記錄
- 在Web頁面點擊“刪除”,進入控制器的delete()方法。
- 在控制器的delete()方法中,調用模型類中封裝的getDelete()方法,刪除指定的留言數據。
- 刪除成功後頁面跳轉到留言列表頁。
0x03 MVC目錄結構
MVC
|-- controller //控制器目錄
|-- model //模型目錄
|-- view //視圖目錄
|-- core //核心目錄
||--- MVCFunction.class.php //核心文件
||--- DB.class.php //操作數據庫核心文件
|-- index.php //入口文件
|-- conf.php //連接數據庫配置文件
0x04 數據表設計
創建數據表messages的sql代碼如下:
CREATE TABLE `messages`(
`id` INT(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(30) NOT NULL DEFAULT '',
`email` VARCHAR(35) NOT NULL DEFAULT '',
`content` VARCHAR(200) NOT NULL DEFAULT '',
`message_time` DATETIME DEFAULT NULL,
PRIMARY KEY(`id`)
)ENGINE=MyISAM DEFAULT CHARSET=utf8;
結構如下:
0x05 MVC配置部署
(1)先對數據庫連接文件進行配置,即conf.php文件:
<?php
define('DB_HOST','localhost');
define('DB_USER','root');
define('DB_PASS',''); //your password
define('DB_NAME','messages_board');
?>
(2)控制器部署
在controller控制器目錄下創建MessageController.class.php控制器文件,並在其中創建MessageController控制器類,代碼如下:
<?php
class MessageController{
//code...
}
?>
(3)模型部署
在model模型目錄下創建MessageModel.class.php控制器文件,並在其中創建MessageModel模型類,代碼如下:
<?php
class MessageModel{
//code...
}
?>
(4)視圖部署
在view視圖目錄下創建MessageView.class.php控制器文件,並在其中創建MessageView視圖類,代碼如下:
<?php
class MessageView{
//code...
}
?>
實現上述部署後,當前目錄狀態如下:
MVC
|-- controller //控制器目錄
||--- MessageController.class.php //留言板控制器
|-- model //模型目錄
||--- MessageModel.class.php //留言板模型
|-- view //視圖目錄
||--- MessageView.class.php //留言板視圖
|-- core //核心目錄
||--- MVCFunction.class.php //核心文件
||--- DB.class.php //操作數據庫核心文件
|-- index.php //入口文件
|-- conf.php //連接數據庫配置文件
0x06 代碼實現
完整代碼已上傳到github:https://github.com/LetheSec/MVC_MessageBoard
0x07 結果展示
初始頁面:
點擊添加留言即可開始留言:
可對留言進行修改或刪除: