TP框架多層MVC用法分析
本文主要介紹了thinkphp多層MVC用法,結合實例分析了thinkPHP中多層MVC的具體原理與相關使用技巧,需要的朋友可以參考下。希望對大家有幫助。
具體如下:
ThinkPHP支援多層設計。
1.模型層Model
使用多層目錄結構和命名規格來設計多層的model,例如在專案設計中如果需要區分資料層,邏輯層,服務層等不同的模型層可以在模組目錄下建立Model,Logic,Service目錄,把對使用者表的所有模型操作分成3層。
1.Model/UserModel用於定義與資料相關的自動驗證,自動完成和資料存取介面
2.Logic/UserLogical用於定義使用者相關的業務邏輯
3.Service/UserService用於設定在使用者相關的服務介面
這三個模型都繼承Model類別即可例如資料層Home/Model/UserModel.class.php
namespace Home\Model; use Think\Model; class UserModel extends Model{}
邏輯層Home/Logic/UserLogical.class.php
namespace Home\Logic; use Think\Model; class UserLogic extends Model{}
namespace Home\Service; use Think\Model; class UserService extends Model{}
在呼叫的時候可以使用內建的D方法或M方法經行呼叫
D('User') //实例化UserModel D('User','Logic') //实例化UserLogic D('User','Service') //实例化UserService
#這樣的話實例化方法就需要對應的修改了
D('User') //实例化UserLogic D('User','Model') //实例化UserModel D('User','Service') //实例化UserService
可以看到使用D('User')預設會去實例化UserLogice類別了,這個是很靈活的,如果我們資料驗證,自動完成是在js裡面完成的,而取資料是從service介面完成的,這樣完全可以只要一個Service層,其他的層就不需要了。
視圖層由模板和模板引擎組成,常見的第三方模板是.tpl,可以直接在模板中使用php程式碼,視圖的多層可以簡單的使用目錄(模板主題)來區分,例如:
View/default/User/add.html View/blue/User/add.html
view 普通視圖層目錄
'DEFAULT_V_LAYER' => 'Mobile', // 默认的视图层名称更改为Mobile
3.控制器層Controller
Controller/UserController //用于用户的业务逻辑控制和调度 Event/UserEvent //用于用户的事件响应操作
事件這個還沒用過,看上去很高上大,web開發中的使用者事件很少,大多數在js完成。
存取控制器Home/Controller/UserController.class.php定義如下:
#
namespace Home\Controller; use Think\Controller; class UserController extends Controller{ }
namespace Home\Event;
use Think\Controller;
class UserEvent extends Controller{
}
UserContrlller負責外部互動回應,透過URL請求回應,例如http ://serverName/User/index,UserEvent負責內部事件回應並且只能在內部呼叫A('User','Event');同樣我們可以設定預設的控制器層: 以上是TP框架多層MVC用法分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!'DEFAULT_C_LAYER' => 'Event', // 默认的控制器层名称改为Event

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

JSP註解的分類及用法解析JSP註解分為兩種:單行註解:以結尾,只能註解單行程式碼。多行註解:以/*開頭,以*/結尾,可以註解多行程式碼。單行註解範例多行註解範例/**這是一段多行註解*可以註解多行程式碼*/JSP註解的用法JSP註解可以用來註解JSP程式碼,使其更易於閱

WPS是一款常用的辦公室軟體套件,其中的WPS表格功能被廣泛用於資料處理和計算。在WPS表格中,有一個非常有用的函數,即DATEDIF函數,它用於計算兩個日期之間的時間差。 DATEDIF函數是英文單字DateDifference的縮寫,它的語法如下:DATEDIF(start_date,end_date,unit)其中,start_date表示起始日期

c語言exit函數怎麼用,需要具體程式碼範例在C語言中,我們常常需要在程式中提前終止程式的執行,或是在某個特定的條件下退出程式。 C語言提供了exit()函數來實作這個功能。本文將介紹exit()函數的用法,並提供對應的程式碼範例。 exit()函數是C語言中的標準函式庫函數,它包含在頭檔中。它的作用是終止程式的執行,並且可以帶一個整數

MySQL中的ISNULL()函數是用來判斷指定表達式或列是否為NULL的函數。它傳回一個布林值,如果表達式為NULL則回傳1,否則回傳0。 ISNULL()函數可以在SELECT語句中使用,也可以在WHERE子句中進行條件判斷。 1.ISNULL()函數的基本語法:ISNULL(expression)其中,expression是要判斷是否為NULL的表達式或

標題:解析織夢CMS二級目錄打不開的原因及解決方案織夢CMS(DedeCMS)是一款功能強大的開源內容管理系統,被廣泛應用於各類網站建設中。然而,有時在搭建網站過程中可能會遇到二級目錄無法開啟的情況,這給網站的正常運作帶來了困擾。在本文中,我們將分析二級目錄打不開的可能原因,並提供具體的程式碼範例來解決這個問題。一、可能的原因分析:偽靜態規則配置問題:在使用

CSS中Transform的用法CSS的Transform屬性是一種非常強大的工具,可以對HTML元素進行平移、旋轉、縮放和傾斜等操作。它可以大大改變元素的外觀,使網頁更有創意和動態。在本文中,我們將詳細介紹Transform的各種用法,並提供具體的程式碼範例。一、平移(Translate)平移是指將元素沿著x軸和y軸移動指定的距離。它的語法如下:tran

蘋果快捷指令怎麼用隨著科技的不斷發展,手機成為了人們生活中不可或缺的一部分。而在眾多手機品牌中,蘋果手機憑藉其穩定的系統和強大的功能一直備受用戶的喜愛。其中,蘋果快捷指令這項功能更是讓用戶的手機使用體驗更加便利和有效率。蘋果快捷指令是蘋果公司為其iOS12及更高版本推出的一項功能,透過建立和執行自訂指令,幫助用戶簡化手機操作流程,以達到更有效率的工作和

SQL中distinct用法詳解在SQL資料庫中,我們常常會遇到需要移除重複資料的情況。此時,我們可以使用distinct關鍵字,它能夠幫助我們去除重複數據,使得查詢結果更加清晰和準確。 distinct的基本使用方法非常簡單,只需要在select語句中使用distinct關鍵字即可。例如,以下是一個普通的select語句:SELECTcolumn_name
