ホームページ  >  記事  >  PHPフレームワーク  >  php tpフレームワークでのmの使用法は何ですか

php tpフレームワークでのmの使用法は何ですか

藏色散人
藏色散人オリジナル
2021-12-02 09:52:142300ブラウズ

php tp フレームワークの m メソッドは、基本モデル クラスのインスタンス化に使用されます。その使用法は次のとおりです: 1. 基本モデル (Model) クラスをインスタンス化する; 2. 他のパブリック モデル クラスをインスタンス化する; 3. 渡すテーブルのプレフィックス、データベース、その他の情報。

php tpフレームワークでのmの使用法は何ですか

この記事の動作環境: Windows7 システム、thinkphp v5.1 バージョン、DELL G3 コンピューター

m の使い方は何ですか? php tp フレームワーク?

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

M メソッドは、基本的なモデル クラスをインスタンス化するために使用されます。D メソッドとの違いは次のとおりです。 :

1. モデル クラスをカスタマイズする必要がないため、IO 負荷が軽減され、パフォーマンスが向上します;

2. インスタンス化後は、基本モデル クラスのメソッドのみが使用されます (デフォルトはModel クラス) を呼び出すことができます;

3. インスタンス化するときに、テーブルのプレフィックス、データベース、およびデータベース接続情報を指定できます。

D メソッドの能力は、カスタム クラスの強度に反映されます。カプセル化するモデルクラスはありますが、ThinkPHP フレームワークの新バージョンの基本モデルでは、クラスの機能がますます強力になり、D メソッドよりも M メソッドの方がより実用的になっています。

M メソッドの呼び出し形式:

M('[基础模型名:]模型名','数据表前缀','数据库连接信息')

M メソッドの具体的な使用法を見てみましょう:

1. 基本モデル (Model) クラスをインスタンス化します。

モデルが定義されていない場合、次のメソッドを使用して操作用のモデル クラスをインスタンス化できます。

//实例化User模型
$User = M('User');
//执行其他的数据操作
$User->select();

このメソッドは、何も定義する必要がないため、最も単純で効率的です。モデルクラスなので、プロジェクト間の呼び出しがサポートされています。また、カスタム モデル クラスがないため、関連するビジネス ロジックを作成できず、基本的な CURD 操作のみを完了できるという欠点もあります。

$User = M('User');

は実際には以下と同等です:

$User = new Model('User');

は think_user テーブルを操作することを意味します。 M メソッドも D メソッドと同様にシングルトン関数を持ち、複数回呼び出されても繰り返しインスタンス化されません。 M メソッドのモデル名パラメーターは、データ テーブルに変換されるときに自動的に小文字に変換されます。これは、ThinkPHP のデータ テーブルの命名仕様がすべて小文字形式であることを意味します。

2. 他のパブリック モデル クラスをインスタンス化する

インスタンス化する最初の方法は、モデル クラスの定義がないため、いくつかの追加の論理メソッドをカプセル化することが困難ですが、ほとんどの場合、 、おそらく一般的なロジックを拡張する必要があるだけの場合は、次の方法を試すことができます。

$User = M('CommonModel:User');

変更された使用法は実際には次と同等です:

$User = new CommonModel('User');

システムのモデル クラスは自動的にロードできるため、インスタンス化前にクラス ライブラリを手動でインポートする必要はありません。モデル クラス CommonModel は Model を継承する必要があります。 CommonModel クラスでいくつかの共通の論理メソッドを定義できるため、データ テーブルごとに特定のモデル クラスを定義する必要がなくなります。プロジェクトに既に 100 を超えるデータ テーブルがある場合、そのほとんどは基本的なものです。CURD 操作の場合、一部のモデルのみがデータ テーブルを定義します。カプセル化する必要がある複雑なビジネス ロジックがあるため、最初の方法と 2 番目の方法を組み合わせるのが良い選択です。

3. テーブルのプレフィックス、データベース、その他の情報を渡す

M メソッドには 3 つのパラメーターがあります。最初のパラメーターはモデル名 (基本的なモデル クラスとデータベースを含めることができます)、2 番目のパラメーターはパラメータはデータ テーブルのプレフィックスを設定するために使用されます (現在のプロジェクト構成のテーブル プレフィックスを取得するには空白のままにします)。3 番目のパラメータは現在使用されているデータベース接続情報を設定するために使用されます (データベース接続を取得するには空白のままにします)

$User = M('db2.User','think_');

は、Model モデル クラスをインスタンス化し、db2 データベース内の think_user テーブルを操作することを意味します。

2 番目のパラメータが空白のままか渡されない場合は、現在のプロジェクト構成でデータ テーブル プレフィックスを使用することを意味します。操作されているデータ テーブルにテーブル プレフィックスがない場合は、次を使用できます:

$User = M('db1.User',null);

は、Model モデル クラスを変換し、db1 データベース内のユーザー テーブルを操作するインスタンスを表します。

操作するデータベースに別のユーザー アカウントが必要な場合は、データベースの接続情報を渡すことができます。例:

$User = M('User','think_','mysql://user_a:1234@localhost:3306/thinkphp');

は Model を使用して基本モデル クラスを表し、その後、 think_user テーブル、user_a を使用 このアカウントはデータベースへの接続に使用され、オペレーティング データベースは thinkphp です。

3 番目の接続情報パラメータでは、DSN 構成またはアレイ構成を使用でき、構成パラメータもサポートできます。

たとえば、プロジェクト構成ファイルで

'DB_CONFIG'=>'mysql://user_a:1234@localhost:3306/thinkphp';

が構成されている場合、次を使用できます。

$User = M('User','think_','DB_CONFIG');

基本モデル クラスとデータベースを一緒に使用できます。たとえば、次のようになります。

$User = M('CommonModel:db2.User','think_');

パブリック モデル クラスを使用して階層モデルをインスタンス化したい場合は、

M('UserLogic:User');

を使用して UserLogic をインスタンス化できます。ただし、これにはあまり意味はありません。 # を使用できるためです。 ##

D('User','Logic');

同じ機能を実現します。

推奨学習:「

thinkphp チュートリアル

以上がphp tpフレームワークでのmの使用法は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。