最近打算學習PHP框架,才發現我以前對MVC的認識很膚淺。但是看Laravel的文檔,對MVC又是雲裡霧裡的
C和V是人機介面,C是人機介面的功能部分,V只是呈現形式,把它從圖形換成指令程式還能跑,只不過不直覺而已。一方面M是C調度的資源,另一方面M是程式中與人機互動不直接相關的部分,它往往需要C來驅動,但是一經驅動就可以獨立運作。很多時候大家談論MVC時都矮化了M,認為它只是對資料的封裝,是靜態的,其實這只在邏輯較簡單的情況下才成立,這時候似乎可以把邏輯都塞進C。但是一般情況下,相較於M,C是很輕的,因為它只負責人機交互,而M則是程式的主體部分。
MVC M--模型,一般是跟資料庫打交道的。 V-輸出給前端使用者的。 C-控制器,用於流程控制,主要是協調M和V的。
顧客到餐廳點菜,顧客點好了,服務生要告訴傳菜員,傳菜員再告訴後廚。 M--菜 V--服務生(菜單) C--傳菜員
M(菜)應該直接跟後廚打交道,那麼後廚就是專案裡的Service了。
另外:一些比較low的餐廳,會把服務生和傳菜員當作一個人來用。 這就是JAVA專案裡的,在JSP裡寫業務邏輯的做法。
有些更low的餐廳,只有一個老闆,這個老闆身兼服務生、傳菜員、後廚。 。 這就是JSP裡寫資料操作的作法。
所以高級餐廳裡,會有各種各樣的角色,細分至極。提高效率,提高可維護性。這就是為嘛大餐廳實習生多的原因了。
老闆說,想看一下這個月的銷售狀況。這是一個請求。於是你(C)接受了這個請求,要公司各業務部門(M)提供這個月的所有銷售數據,然後把這些數據做一下簡單整理交給了老闆助理(V)。老闆助理用這些整理好的數據按部門做成圖表圓餅圖呈交給老闆看。
view:處理使用者請求 controller:處理前端請求,發起資料庫請求 model:處理資料庫請求
view: 展示頁 controller:處理邏輯 model: 處理資料
mvc的關鍵,就是路由! ! ! ,路由不懂? ? ?就是拆分url位址,剩下的那些,等你寫過幾個controller的增刪該查就漸漸明白了
所以研究mvc,研究路由,就是拆url位址,打完收工!
C和V是人機介面,C是人機介面的功能部分,V只是呈現形式,把它從圖形換成指令程式還能跑,只不過不直覺而已。一方面M是C調度的資源,另一方面M是程式中與人機互動不直接相關的部分,它往往需要C來驅動,但是一經驅動就可以獨立運作。很多時候大家談論MVC時都矮化了M,認為它只是對資料的封裝,是靜態的,其實這只在邏輯較簡單的情況下才成立,這時候似乎可以把邏輯都塞進C。但是一般情況下,相較於M,C是很輕的,因為它只負責人機交互,而M則是程式的主體部分。
MVC
M--模型,一般是跟資料庫打交道的。
V-輸出給前端使用者的。
C-控制器,用於流程控制,主要是協調M和V的。
顧客到餐廳點菜,顧客點好了,服務生要告訴傳菜員,傳菜員再告訴後廚。
M--菜
V--服務生(菜單)
C--傳菜員
M(菜)應該直接跟後廚打交道,那麼後廚就是專案裡的Service了。
另外:一些比較low的餐廳,會把服務生和傳菜員當作一個人來用。
這就是JAVA專案裡的,在JSP裡寫業務邏輯的做法。
有些更low的餐廳,只有一個老闆,這個老闆身兼服務生、傳菜員、後廚。 。
這就是JSP裡寫資料操作的作法。
所以高級餐廳裡,會有各種各樣的角色,細分至極。提高效率,提高可維護性。這就是為嘛大餐廳實習生多的原因了。
老闆說,想看一下這個月的銷售狀況。這是一個請求。於是你(C)接受了這個請求,要公司各業務部門(M)提供這個月的所有銷售數據,然後把這些數據做一下簡單整理交給了老闆助理(V)。老闆助理用這些整理好的數據按部門做成圖表圓餅圖呈交給老闆看。
view:處理使用者請求
controller:處理前端請求,發起資料庫請求
model:處理資料庫請求
view: 展示頁
controller:處理邏輯
model: 處理資料
mvc的關鍵,就是路由! ! ! ,路由不懂? ? ?就是拆分url位址,剩下的那些,等你寫過幾個controller的增刪該查就漸漸明白了
所以研究mvc,研究路由,就是拆url位址,打完收工!