ホームページ > PHPフレームワーク > ThinkPHP > thinkphp ビッグ D とは何ですか

thinkphp ビッグ D とは何ですか

藏色散人
リリース: 2021-12-16 15:04:48
オリジナル
2054 人が閲覧しました

thinkphp の Big d は、カスタム モデル クラスのインスタンス化に使用される組み込みメソッドです。これは、ThinkPHP フレームワークによるモデル クラスのインスタンス化のカプセル化です。D メソッドの呼び出し形式は、「D(' [プロジェクト://][グループ/]モデル','モデルレイヤー名')"。

thinkphp ビッグ D とは何ですか

この記事の動作環境: Windows 7 システム、ThinkPHP バージョン 5.0、Dell G3 コンピューター。

ThinkPHP 関数の詳細説明: D メソッド

D メソッド:

D メソッドをもっと使うべきカスタム モデル クラスのインスタンス化に使用される頻繁なメソッドは、ThinkPHP フレームワークによるモデル クラスのインスタンス化のカプセル化であり、プロジェクト間およびグループ呼び出しをサポートするシングルトン モードを実装します。呼び出し形式は次​​のとおりです:

D('[项目://][分组/]模型','模型层名称')
ログイン後にコピー

メソッドの戻り値は、インスタンス化されたモデル オブジェクトです。

D メソッドはモデル クラスを自動的に検出できます。カスタム モデル クラスが存在する場合はカスタム モデル クラスがインスタンス化され、存在しない場合はモデルの基本クラスがインスタンス化されます。すでにインスタンス化されているモデルは、繰り返しインスタンス化されません。

D メソッドの最も一般的な使用法は、現在のプロジェクトのカスタム モデルをインスタンス化することです。例:

// 实例化User模型
$User = D('User');
ログイン後にコピー

は、次の Lib/Model/UserModel.class.php ファイルをインポートします。現在のプロジェクトを作成し、UserModel クラスをインスタンス化します。実際のコードは次と同等になります。

import('@.Model.UserModel');
$User = new UserModel();
ログイン後にコピー

ただし、D メソッドを使用する場合、UserModel クラスが存在しない場合は、自動的に

が呼び出されます。
new Model('User');
ログイン後にコピー

また、2 回目の呼び出し時に再度インスタンス化する必要がないため、オブジェクトのインスタンス化のオーバーヘッドをある程度削減できます。

D メソッドは、グループ間およびプロジェクトのインスタンス化モデルをサポートできます。例:

//实例化Admin项目的User模型
D('Admin://User')
//实例化Admin分组的User模型
D('Admin/User')
ログイン後にコピー

注: プロジェクト間呼び出しモデルを実装するには、2 つのプロジェクトのディレクトリ構造が次のとおりであることを確認する必要があります。平行。

バージョン 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();
ログイン後にコピー

推奨: "最新の 10 thinkphp ビデオ チュートリアル "

以上がthinkphp ビッグ D とは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート