首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

ThinkPHP 3.1 D 方法詳解:自定義模型實例化、單例模式、跨項目分組與分層模型支援

     編輯:PHP 綜合知識

方法定位

D 方法用於實例化自定義模型類,封裝 Model 實例化,實現單例模式,支援跨項目/分組調用。

調用格式

D('[項目://][分組/]模型', '模型層名稱')

核心特性

  • 自動檢測:存在自定義模型 → 實例化自定義模型;不存在 → 實例化 Model 基類;
  • 單例:同一模型多次調用不重複實例化;
  • 跨項目需目錄並列;
  • 3.1+ 支援分層模型(Service、Logic 等)。

常用場景

// 當前項目 User 模型 (Lib/Model/UserModel.class.php)
$User = D('User');
// 等效於
import('@.Model.UserModel');
$User = new UserModel();
// 若 UserModel 不存在,自動退回 new Model('User')

// 跨項目/分組
D('Admin://User');   // Admin 項目 User 模型
D('Admin/User');     // Admin 分組 User 模型

// 分層模型 (ThinkPHP 3.1+)
$User = D('User', 'Service'); // Lib/Service/UserService.class.php
$User = D('User', 'Logic');   // Lib/Logic/UserLogic.class.php
// 等效於
import('@.Service.UserService');
$User = new UserService();

優勢: D 方法結合「自動檢測回退 + 單例 + 分層支援」,是 ThinkPHP 業務邏輯封裝的核心入口,推薦作為模型層首選調用方式。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved