首頁 後端開發 php教程 thinkphp多層MVC用法分析

thinkphp多層MVC用法分析

Jul 29, 2016 am 09:08 AM
mvc thinkphp

這篇文章主要介紹了thinkphp多層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{}
登入後複製

服務層Home/Service/UserService.class.php

namespace Home\Service;
use Think\Model;
class UserService extends Model{}
登入後複製

在呼叫的時候可以使用內建的D方法或M方法經行呼叫

rr+下的資料存取介面類別的時候沒有第二個參數模型檔名稱,預設的模型層是Model,也可以更改設定如下:

程式碼如下:

D('User') //实例化UserModel
D('User','Logic') //实例化UserLogic
D('User','Service') //实例化UserService
登入後複製

這樣的話實例化方法就需要對應的修改了


'DEFAULT_M_LAYER' =>  'Logic', // 更改默认的模型层名称为Logic
登入後複製

可以看到使用D('User')預設會去實例化UserLogice類了,這個是很靈活的,如果我們資料驗證,自動完成是在js裡面完成的,而取資料是從service介面完成的,這樣完全可以只要一個Service層,其他的層就不需要了。

2.視圖層View

視圖層由模板和模板引擎組成,常見的第三方模板是.tpl,可以直接在模板中使用php程式碼,視圖的多層可以簡單的使用目錄(模板主題)來區分,例如:

View/default/User/add.html

View/blue/User/add.html

複雜一點的多層視圖還可以使用不同的視圖目錄來區分例如:

view 普通視圖層目錄

mobile 手機端存取視圖層目錄

這樣不同的模板可以使用不同的頁面風格,也可以預設視圖目錄,如下:

程式碼如下:

D('User') //实例化UserLogic
D('User','Model') //实例化UserModel
D('User','Service') //实例化UserService
登入後複製

3.層Controller

程式碼如下:

'DEFAULT_V_LAYER' => 'Mobile', // 默认的视图层名称更改为Mobile
登入後複製
3.層Controller

程式碼如下:

Controller/UserController //用于用户的业务逻辑控制和调度
Event/UserEvent //用于用户的事件响应操作
登入後複製

3.層Controller

代碼如下:

namespace Home\Controller;
use Think\Controller;
class UserController extends Controller{
}
登入後複製

3.

ThinkPHP的控制器有兩個類別,一個是核心控制器,一個是業務控制器,核心控制器在ThinkPHP目錄下,例如thinkphpThinkPHPLibraryThinkControllerHproseController.class.php,負責應用的調度控制,包括Http請求的攔截,轉發,載入配置等。我們這裡要討論的是業務控制器,由使用者自己定義的控制器類別完成,多層業務控制器的實作原理和模型的分層類似,例如業務控制器和事件控制器,

namespace Home\Event;
use Think\Controller;
class UserEvent extends Controller{
}
登入後複製

事件這個還沒用過,看起來很高上大,web開發中的使用者事件很少,大多數在js完成。

存取控制器Home/Controller/UserController.class.php定義如下:

'DEFAULT_C_LAYER' => 'Event', // 默认的控制器层名称改为Event
登入後複製


事件控制器Home/Event/UserEvent.class.php的定義如下:

交互回應,透過URL請求回應,例如http://www.php.cn/,UserEvent負責內部事件回應並且只能在內部呼叫A('User','Event');同樣我們可以設定預設的控制器層:


程式碼如下:

rrreee

內部和外部是隔離的,多層控制器也不是強制的,可以根據應用的需要自由的分層,控制器裡可以根據需要調用不同的分層模型,也可以顯示不同的分層視圖,實現不同的主題。

🎜在MVC的三層中,ThinkPHP並不依賴M和V,可以只有C或只有V,使用者只需要定義視圖,在沒有C的情況下也能自動識別,但是這種怪異的寫法會讓很多剛剛入門的程式設計師非常的困惑。 🎜🎜多層設計在目前的專案中還沒有用到,在.net專案中倒見到很多,下次用到再做補充。 🎜
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

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

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

thinkphp專案怎麼運行 thinkphp專案怎麼運行 Apr 09, 2024 pm 05:33 PM

執行 ThinkPHP 專案需要:安裝 Composer;使用 Composer 建立專案;進入專案目錄,執行 php bin/console serve;造訪 http://localhost:8000 查看歡迎頁面。

thinkphp有幾個版本 thinkphp有幾個版本 Apr 09, 2024 pm 06:09 PM

ThinkPHP 擁有多個版本,針對不同 PHP 版本而設計。主要版本包括 3.2、5.0、5.1 和 6.0,而次要版本用於修復 bug 和提供新功能。目前最新穩定版本為 ThinkPHP 6.0.16。在選擇版本時,需考慮 PHP 版本、功能需求和社群支援。建議使用最新穩定版本以獲得最佳性能和支援。

thinkphp怎麼運行 thinkphp怎麼運行 Apr 09, 2024 pm 05:39 PM

ThinkPHP Framework 的本機運作步驟:下載並解壓縮 ThinkPHP Framework 到本機目錄。建立虛擬主機(可選),指向 ThinkPHP 根目錄。配置資料庫連線參數。啟動 Web 伺服器。初始化 ThinkPHP 應用程式。存取 ThinkPHP 應用程式 URL 運行。

laravel和thinkphp哪個好 laravel和thinkphp哪個好 Apr 09, 2024 pm 03:18 PM

Laravel 和 ThinkPHP 框架的效能比較:ThinkPHP 效能通常優於 Laravel,專注於最佳化和快取。 Laravel 性能良好,但對於複雜應用程序,ThinkPHP 可能更適合。

開發建議:如何利用ThinkPHP框架實現非同步任務 開發建議:如何利用ThinkPHP框架實現非同步任務 Nov 22, 2023 pm 12:01 PM

《開發建議:如何利用ThinkPHP框架實現非同步任務》隨著網路技術的快速發展,Web應用程式對於處理大量並發請求和複雜業務邏輯的需求也越來越高。為了提高系統的效能和使用者體驗,開發人員常常會考慮利用非同步任務來執行一些耗時操作,例如發送郵件、處理文件上傳、產生報表等。在PHP領域,ThinkPHP框架作為一個流行的開發框架,提供了一些便捷的方式來實現非同步任務。

thinkphp怎麼安裝 thinkphp怎麼安裝 Apr 09, 2024 pm 05:42 PM

ThinkPHP 安裝步驟:準備 PHP、Composer、MySQL 環境。使用 Composer 建立專案。安裝 ThinkPHP 框架及相依性。配置資料庫連線。產生應用程式碼。啟動應用程式並造訪 http://localhost:8000。

PHP MVC 架構:建立面向未來的 Web 應用程式 PHP MVC 架構:建立面向未來的 Web 應用程式 Mar 03, 2024 am 09:01 AM

引言在當今快速發展的數位世界中,建立健壯、靈活且可維護的WEB應用程式至關重要。 PHPmvc架構提供了實現這一目標的理想解決方案。 MVC(模型-視圖-控制器)是一種廣泛使用的設計模式,可將應用程式的各個方面分離為獨立的元件。 MVC架構的基礎MVC架構的核心原理是分離關注點:模型:封裝應用程式的資料和業務邏輯。視圖:負責呈現資料並處理使用者互動。控制器:協調模型和視圖之間的交互,管理使用者請求和業務邏輯。 PHPMVC架構phpMVC架構遵循傳統MVC模式,但也引進了語言特定的功能。以下是PHPMVC

thinkphp效能怎麼樣 thinkphp效能怎麼樣 Apr 09, 2024 pm 05:24 PM

ThinkPHP 是一款高效能的 PHP 框架,具備快取機制、程式碼最佳化、平行處理和資料庫最佳化等優勢。官方性能測試顯示,它每秒可處理超過 10,000 個請求,實際應用中被廣泛用於京東商城、攜程網等大型網站和企業系統。

See all articles