您好,登錄后才能下訂單哦!
這篇文章主要介紹“thinkphp5中MVC分層的含義是什么”,在日常操作中,相信很多人在thinkphp5中MVC分層的含義是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”thinkphp5中MVC分層的含義是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
在thinkphp5中,MVC分層指的是模型層、視圖層和控制器層分工合作,邏輯層和表現(xiàn)層進行分開的操作;模型層負責數(shù)據(jù)庫操作,控制器就是一個模塊類,根據(jù)url進行調(diào)度和操作,視圖用于連接action控制器和模板文件。
本文操作環(huán)境:Windows10系統(tǒng)、ThinkPHP5版、Dell G3電腦。
MVC,M模型,V視圖,C控制器。
分層,就是分工合作,邏輯層和表現(xiàn)層進行分開的操作。模型負責:數(shù)據(jù)庫操作。控制器:任何一個WEB操作都是一個模塊的某個操作,控制器就是一個模塊類,根據(jù)url進行調(diào)度和操作。視圖(view類和模版文件組成):連接action控制器和模版文件,Action類把數(shù)據(jù)通過View類傳遞到模板文件,而模板文件把接收到的數(shù)據(jù)轉(zhuǎn)換成相應的數(shù)據(jù)格式顯示。
ThinkPHP基于MVC(Model-View-Controller,模型-視圖-控制器)模式,并且均支持多層(multi-Layer)設計。
默認的模型層由Model類構成,但是隨著項目的增大和業(yè)務體系的復雜化,單一的模型層很難解決要求,多層Model的支持設計思路很簡單,不同的模型層仍然都繼承自系統(tǒng)的Model類,但是在目錄結(jié)構和命名規(guī)范上做了區(qū)分。
例如在某個項目設計中需要區(qū)分數(shù)據(jù)層、邏輯層、服務層等不同的模型層,我們可以在模塊目錄下面創(chuàng)建model、logic和service目錄,把對用戶表的所有模型操作分成三層:
數(shù)據(jù)層:model/User 用于定義數(shù)據(jù)相關的自動驗證和自動完成和數(shù)據(jù)存取接口
邏輯層:logic/User 用于定義用戶相關的業(yè)務邏輯
服務層:service/User 用于定義用戶相關的服務接口等
而這三個模型操作類統(tǒng)一都繼承\(zhòng)think\Model類即可。
對模型層的分層劃分是很靈活的,開發(fā)人員可以根據(jù)項目的需要自由定義和增加模型分層,你也完全可以只使用Model層。
視圖層由模板和模板引擎組成,在模板中可以直接使用PHP代碼,模板引擎的設計會在后面講述,通過驅(qū)動也可以支持其他第三方的模板引擎。視圖的多層可以簡單的通過目錄區(qū)分,例如:
view/default/user/add.html view/blue/user/add.html
復雜一點的多層視圖還可以更進一步,采用不同的視圖目錄來完成,例如:
view 普通視圖層目錄
mobile 手機端訪問視圖層目錄
ThinkPHP的控制器層由核心控制器和業(yè)務控制器組成,核心控制器由系統(tǒng)內(nèi)部的App類完成,負責應用(包括模塊、控制器和操作)的調(diào)度控制,包括HTTP請求攔截和轉(zhuǎn)發(fā)、加載配置等。業(yè)務控制器則由用戶定義的控制器類完成。多層業(yè)務控制器的實現(xiàn)原理和模型的分層類似,例如業(yè)務控制器和事件控制器:
controller/User //用于用戶的業(yè)務邏輯控制和調(diào)度 event/User //用于用戶的事件響應操作
controller\User負責外部交互響應,通過URL請求響應,例如 http://serverName/User/index,而 event\User 負責內(nèi)部的事件響應,并且只能在內(nèi)部調(diào)用,所以是和外部隔離的。多層控制器的劃分也不是強制的,可以根據(jù)應用的需要自由分層??刂破鞣謱永锩婵梢愿鶕?jù)需要調(diào)用分層模型,也可以調(diào)用不同的分層視圖。
到此,關于“thinkphp5中MVC分層的含義是什么”的學習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。