ThinkPHP
ThinkPHP では、M メソッドと D メソッドの両方を使用してモデル クラスをインスタンス化します。M メソッドは基本モデル クラスを効率的にインスタンス化するために使用され、D メソッドはユーザー定義のモデル クラスをインスタンス化するために使用されます。
次のような状況が発生した場合は、M メソッドの使用を検討してください:
M メソッドは、パラメーター テーブル名に対応するデータ テーブルの操作を単純に調べることもできます:
$User = M('User');
次の状況が発生した場合は、方法 D の使用を検討してください:
さらに、D メソッドはプロジェクト間の呼び出しをサポートしていないため、次のように使用する必要があります:
$User = D('User', 'Admin'); // 实例化 Admin 项目下面的 User 模型 $User = D('Admin.User'); // 启用了项目分组
プロジェクトのグループ化が有効になった後、Model クラスは必ずしもプロジェクトのグループ化に対応するとは限りません。複数のプロジェクト グループ間で共有されるモデル クラスは Model ディレクトリに配置され、D('ModelName') を使用して直接インスタンス化できます。また、D('User.UserInfo') は、User がプロジェクト グループである必要があるという意味ではありません。D('User.UserInfo') は、User ディレクトリに UserInfo モデルをインスタンス化します。親切。
モデル クラス ファイルが存在しない場合は、M メソッドと D メソッドの両方を直接使用できます。明らかに M メソッドの方が効率的ですが、モデル クラスでビジネス ロジックを使用するには、D メソッドを使用する必要があります。
より鮮明な比喩は次のとおりです。方法 M は、オペレーティング システムをインストールしたばかりで、一部の基本的な機能しか使用できないコンピューターに似ています。一方、方法 D は、インストールされたシステムに Office や QQ などのアプリケーション ソフトウェアをインストールするようなものです。強力ですが、同時にコンピュータ全体の動作が遅くなります。
以上が M 方式と D 方式の違いをまとめたものです。M 方式と D 方式は実情に応じて選択してください。