ホームページ > 記事 > PHPフレームワーク > thinkphpのmメソッドとdメソッドの違いは何ですか
thinkphp の m メソッドと d メソッドの違い: 1. m メソッドはモデル クラス ファイルを作成する必要がありませんが、d メソッドはモデル クラスを作成する必要があります。2. d メソッドはモデル クラス ファイルを作成する必要があります。 m メソッドのインスタンス化では、特定のモデル クラスをロードする必要はありません。
#この記事の動作環境: Windows 10 システム、thinkphp v5.1 バージョン、Dell G3 コンピューター。
#thinkphp の m メソッドと d メソッドの違いは何ですか
D メソッドは、次の場合にモデル クラスを自動的に検出できます。カスタム モデル クラスが存在する場合は、カスタム モデル クラスがインスタンス化されます。存在しない場合は、システムの \Think\Model 基本クラスがインスタンス化されます。同時に、インスタンス化されたモデルは繰り返しインスタンス化されません。
D メソッドがモデル クラスをインスタンス化する場合、通常は特定のモデル クラスがインスタンス化されます。データ テーブルに対して基本的な CURD 操作のみを実行する場合、M メソッドを使用してインスタンス化すると、具体的なモデルクラスをロードするため、パフォーマンスが高くなります。
ThinkPHP では、モデル クラスのインスタンス化に M メソッドと D メソッドの両方が使用されます。M メソッドは基本的なモデル クラスを効率的にインスタンス化するために使用され、D メソッドはユーザー定義のモデル クラスをインスタンス化するために使用されます。モデルクラス。
m メソッドを使用する
次の状況が発生した場合は、M メソッドの使用を検討してください。
データ テーブルに対して単純な CURD 操作を実行します。複雑なビジネス ロジックを持つテーブルが少数のみの場合は、インスタンス化された CommonModel クラスと組み合わせて M メソッドを使用します。
M メソッドは、パラメータ テーブル名に対応するデータ テーブルを単純に操作することもできます。 :
$User = M('User');
D メソッドを使用する
次のような状況が発生した場合は、D メソッドの使用を検討してください。 :
自動検証機能 (create() メソッドで実装)、関連モデル、および比較的複雑で多くのテーブルが関与するその他のビジネス ロジックなど、ThinkPHP モデルのいくつかの高度な機能を使用する必要があります。これらのビジネス ロジックを操作に実装する場合、ビジネス ロジックはカスタムのモデル クラス (Lib/Model ディレクトリの下) で定義されます。
さらに、D メソッドはクロスプロジェクト呼び出しの場合は、以下を使用する必要があります:
$User = D( 'User', 'Admin'); // Admin プロジェクトの下で User モデルをインスタンス化します $User = D('Admin.User'); // プロジェクトのグループ化が有効になります
Tips
プロジェクトのグループ化が有効になった後、Model クラスは必ずしもプロジェクトのグループ化に対応するとは限りません。複数のプロジェクト グループ間で共有されるモデル クラスは Model ディレクトリに配置され、D('ModelName') を使用して直接インスタンス化できます。また、D('User.UserInfo') は、User がプロジェクト グループである必要があるという意味ではなく、Model の下にあるファイルの分類ディレクトリでも構いません。D('User.UserInfo') は、User ディレクトリに UserInfo モデルをインスタンス化します。親切。
概要
M メソッドと D メソッドはどちらも、モデル クラス ファイルが存在しない場合に直接使用できますが、明らかに M メソッドの方が効率的ですが、ビジネス ロジックを使用するにはモデル クラスの場合は、メソッド D のみを使用する必要があります。
より鮮明な比喩は、次のようになります。方法 M は、オペレーティング システムをインストールしたばかりで、一部の基本機能しか使用できないコンピューターに似ています。一方、方法 D は、インストールされたシステムに Office などの他の機能をインストールするようなものです。 、QQ やその他のアプリケーション ソフトウェアは、より強力な機能を備えていますが、同時にコンピューター全体の動作が遅くなります。
上記はM方式とD方式の違いをまとめたものですが、実際の状況に応じてM方式とD方式を選択してください。
推奨学習: 「最新の 10 件の thinkphp ビデオ チュートリアル 」
以上がthinkphpのmメソッドとdメソッドの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。