ホームページ >バックエンド開発 >PHPチュートリアル >ThinkPHP3.1_PHPチュートリアルのDメソッド例を詳しく解説
D メソッドは、カスタム モデル クラスをインスタンス化するために使用され、シングルトン モードを実装し、プロジェクト間呼び出しとグループ呼び出しをサポートします。形式は次のとおりです:
D('[project://][group/]model','モデルレイヤー名')
メソッドの戻り値は、インスタンス化されたモデル オブジェクトです。
D メソッドは、カスタム モデル クラスが存在する場合は、そのカスタム モデル クラスがインスタンス化されます。それと同時に、モデルの基本クラスがインスタンス化されます。インスタンス化は繰り返されません。
D メソッドの最も一般的な使用法は、現在のプロジェクトのカスタム モデルをインスタンス化することです。例:
は現在のプロジェクトに Lib/Model/UserModel.class.php ファイルをインポートし、UserModel クラスをインスタンス化するため、実際のコードは次と同等になります。
ただし、D メソッドを使用する場合、UserModel クラスが存在しない場合は、自動的に呼び出されます
2 回目の呼び出し時に再度インスタンス化する必要がないため、オブジェクトのインスタンス化のオーバーヘッドをある程度削減できます。
D メソッドは、グループやプロジェクト全体でのモデルのインスタンス化をサポートできます。例:
注: プロジェクト間呼び出しモデルを実装するには、2 つのプロジェクトのディレクトリ構造が並列であることを確認する必要があります。
ThinkPHP はバージョン 3.1 以降、階層モデルのサポートを追加したため、D メソッドは他のモデルをインスタンス化することもできます。例:
そして D('User','Service'); は Lib/Service/UserService.class.php をインポートしてインスタンス化します。これは次のコードと同等です。
リーリー