ThinkPHP3 1之D方法例項詳解

2022-10-06 12:03:16 字數 1167 閱讀 4077

d方法應該是用的比較多的方法了,用於例項化自定義模型類,是thinkphp框架對model類例項化的一種封裝,並實現了單例模式,支援跨專案和分組呼叫,呼叫格式如下:

d('[專案://][分組/]模型','模型層名稱')

方法的返回值是例項化的模型物件。

d方法可以自動檢測模型類,如果存在自定義的模型類,則例項化自定義模型類,如果不存在,則會例項化model基類,同時對於已例項化過的模型,不會重複去例項化。

d方法最常用的用法就是例項化當前專案的某個自定義模型,例如:

// 例項化user模型

$user = d('user');

會匯入當前專案下面的lib/model/usermodel.class.php檔案,然後例項化usermodel類,所以,實際上的**可能和下面的等效:

import('@.model.usermodel');

$user = new usermodel();

但是如果使用d方法的話,如果這個usermodel類不存在,則會自動呼叫

new model('user');

並且第二次呼叫的時候無需再次例項化,可以減少一定的物件例項化開銷。

d方法可以支援跨分組和專案例項化模型,例如:

//abvmmt例項化admin專案的user模型

d('admi程式設計客棧n://user')

//例項化admin分組的user模型

d('admin/user')

注意:要實現跨專案呼叫模型的話,必須確保兩個專案的目錄結構是並列的。

thinkphp自3.1版本開始,由於增加了分層模型的支援,所以d方法也可以例項化其他的模型,例如:

// 例項化userservice類

$user = d('user','service');

// 例項化userlogic類

$user = d('user','logic');

而d('user','service');會匯入lib/service/userservice.class.php,並例項化,等效於下面的**:

import('@.service.userservice');

$user = new userserivce();

本文標題: thinkphp3.1之d方法例項詳解

本文位址: /wangluo/php/109768.html

ThinkPHP3 1快速入門(10)快取

在專案中,合理的使用快取對效能有較大的幫助。thinkphp提供了方便的快取方式,包括資料快取 靜態快取和查詢快取等,支援包括檔案方式 apc db memcache shmop sqlite redis eaccelerator和xcache在內的動態資料快取型別,以及可定製的靜態快取規則,並提供...

ThinkPHP3 1新特性 Action引數繫結

action引數繫結功能提供了url變數和操作方法的引數繫結支援,這一功能可以使得你的操作方法定義和引數獲取更加清晰,也便於跨模組呼叫操作方法了。這一新特性對以往的操作方法使用沒有任何影響,你也可以用新的方式來改造以往的操作方法定義。action引數繫結的原理是把url中的引數 不包括分組 模組和操...

ThinkPHP3 1新特性之對頁面壓縮輸出的支援

目前大多數瀏覽器都已經支援頁面的壓縮輸出,通過壓縮輸出,頁面大小可以減少30 但是由於3.0及以前的版本都沒有內建頁面壓縮輸出功能,所以一般來說,開發人員需要自己在入口檔案中新增 ob start ob gzhandler 但是由於伺服器環境的不同,有時候這個配置會和php.ini檔案中的zlib壓...