在thinkphp5中,MVC分層指的是模型層、視圖層和控制器層分工合作,邏輯層和表現層進行分開的操作;模型層負責資料庫操作,控制器就是一個模組類,根據url進行調度和操作,視圖用於連接action控制器和模板檔案。
本文操作環境:Windows10系統、ThinkPHP5版、Dell G3電腦。
MVC,M模型,V視圖,C控制器。
分層,就是分工合作,邏輯層和表現層進行分開的操作。模型負責:資料庫操作。控制器:任何一個WEB操作都是一個模組的某個操作,控制器就是一個模組類,根據url進行調度和操作。視圖(view類別和模版文件組成):連接action控制器和模版文件,Action類別把資料透過View類別傳遞到模板文件,而模板文件把接收到的資料轉換成對應的資料格式顯示。
ThinkPHP基於MVC(Model-View-Controller,模型-視圖-控制器)模式,且皆支援多層(multi-Layer)設計。
預設的模型層由Model類別構成,但是隨著專案的增加和業務體系的複雜化,單一的模型層很難解決要求,多層Model的支援設計想法很簡單,不同的模型層仍然都繼承自系統的Model類,但在目錄結構和命名規範上做了區分。
例如在某個專案設計中需要區分資料層、邏輯層、服務層等不同的模型層,我們可以在模組目錄下方建立model、logic和service目錄,把所有對使用者表的模型操作分成三層:
資料層:model/User 用於定義資料相關的自動驗證和自動完成和資料存取介面
邏輯層:logic/User 用於定義使用者相關的業務邏輯
服務層:service/User 用於定義使用者相關的服務介面等
#而這三個模型操作類別統一都繼承\think\Model類別即可。
對模型層的分層劃分是很靈活的,開發人員可以根據專案的需要自由定義和增加模型分層,你也完全可以只使用Model層。
視圖層由模板和模板引擎組成,在模板中可以直接使用PHP程式碼,模板引擎的設計會在後面講述,透過驅動也可以支援其他第三方的模板引擎。視圖的多層可以簡單的透過目錄區分,例如:
view/default/user/add.html view/blue/user/add.html
複雜一點的多層視圖還可以更進一步,採用不同的視圖目錄來完成,例如:
view 普通視圖層目錄
mobile 手機端存取視圖層目錄
ThinkPHP的控制器層由核心控制器和業務控制器組成,核心控制器由系統內部的App類別完成,負責應用(包括模組、控制器和操作)的調度控制,包括HTTP請求攔截和轉發、載入配置等。業務控制器則由使用者定義的控制器類別完成。多層業務控制器的實作原則和模型的分層類似,例如業務控制器和事件控制器:
controller/User //用于用户的业务逻辑控制和调度 event/User //用于用户的事件响应操作
controller\User負責外部互動回應,透過URL請求回應,例如 http://serverName /User/index,而 event\User 負責內部的事件回應,並且只能在內部調用,所以是和外部隔離的。多層控制器的劃分也不是強制的,可以根據應用的需要自由分層。控制器分層裡面可以依需求呼叫分層模型,也可以呼叫不同的分層視圖。
推薦學習:《PHP影片教學》
以上是thinkphp5中MVC分層是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!