您好,登錄后才能下訂單哦!
這篇文章主要介紹“thinkphp5中MVC分層的含義是什么”,在日常操作中,相信很多人在thinkphp5中MVC分層的含義是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”thinkphp5中MVC分層的含義是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
在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 負責內部的事件響應,并且只能在內部調用,所以是和外部隔離的。多層控制器的劃分也不是強制的,可以根據應用的需要自由分層。控制器分層里面可以根據需要調用分層模型,也可以調用不同的分層視圖。
到此,關于“thinkphp5中MVC分層的含義是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。