不是技術,就是一種思想,將網站的用戶操作,與後台對用戶操作的處理(包含操作數據庫)進行一種分離的思想。
後台php永遠是被用戶的行為調用,要為用戶的行為設置操作入口,
操作入口:本質就是使用URL(只有一個privlege.php?action=值、goods.php?action=值)
後台:
解析URL得到URL根據action進行判斷 ==>MVC中的C
根據不同的action(行為)操作數據庫,得到數據==>MVC中的M
使用的是include引入一個用於回顯信息給用戶的html文件(模板)==> MVC中的V
M:(module)模型 主要用於操作相應的數據表(表對應的類goods.class.php、category.class.php、user.class.php)
V:(view)視圖 就是用於承載php回顯數據的html文檔
C:(controller)控制器 主要用於業務邏輯的處理,控制程序流程的走向
形象比喻:
用戶是公司的大boss
C(privilege.php、goods.php、index.php) 公司的中層
用戶發出命令,公司中層收到命令(一個命令可以分多個步驟:1、讀取數據是一個步驟,2、回顯數據給用戶),公司中層派小弟1(user.class.php、goods.class.php)去讀取數據,小弟1把數據返回給公司中層,公司中層再把數據交給小弟2,由小弟2來顯示數據。
user.class.php、goods.class.php為什麼要繼承DB類。
對數據庫的操作只有四種方法。此種操作應用在不同的模塊中會體現出不同的事務。所以不能將每一個模塊的業務都封裝在DB類中,用模型類來封裝同網站模塊的不同業務。
用戶所操作的都是程序員"預料之內的"行為,用戶只能點擊按鈕或A鏈接,那A鏈接的href是程序員設計的。
MVC圖解:
拓展: