ホームページ  >  記事  >  バックエンド開発  >  ThinkPHPのMメソッド例の詳細解説_PHPチュートリアル

ThinkPHPのMメソッド例の詳細解説_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:24:20726ブラウズ

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

1. モデルクラスをカスタマイズする必要がなく、IO 負荷が軽減され、パフォーマンスが向上します。 2. インスタンス化後は、基本モデル クラス (デフォルトは Model クラス) のメソッドのみを呼び出すことができます。 3. インスタンス化中にテーブルのプレフィックス、データベース、データベース接続情報を指定できます。 D メソッドの能力は、カプセル化するカスタム モデル クラスの強力さに反映されます。ただし、ThinkPHP フレームワークの新しいバージョンの基本モデル クラスがますます強力になるにつれて、M メソッドはますます実用的になってきています。 Dメソッド。


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

M('[基本モデル名:]モデル名','データテーブルプレフィックス','データベース接続情報')

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

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

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

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

リーリー
は実際には次と同等です:

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

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

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

リーリー

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

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

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

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

リーリー

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

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

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

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

リーリー
基本モデル クラスが Model を使用し、think_user テーブルを操作し、user_a アカウントを使用してデータベースに接続し、操作データベースが thinkphp であることを示します。

3 番目の接続情報パラメーターは、DSN 構成またはアレイ構成を使用でき、構成パラメーターもサポートできます。
たとえば、プロジェクト構成ファイルで構成されます:

リーリー

その後、以下を使用できます:

リーリー

基本的なモデルクラスとデータベースは一緒に使用できます。例:

リーリー

パブリックモデルクラスを使用して階層モデルをインスタンス化したい場合は、以下を使用できます:

リーリー

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

リーリー

同じ機能を実現します。

http://www.bkjia.com/PHPjc/825507.html

www.bkjia.com

tru​​e

技術記事 M メソッドは、基本モデル クラスのインスタンス化に使用されます。D メソッドとの違いは次のとおりです。1. カスタム モデル クラスが必要ないため、IO 負荷が軽減され、パフォーマンスが向上します。2. インスタンス化後は、基本モデルのみを呼び出すことができます。 ...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。