ホームページ  >  記事  >  バックエンド開発  >  クロスモジュール呼び出し操作の ThinkPHP 実装の概要_PHP チュートリアル

クロスモジュール呼び出し操作の ThinkPHP 実装の概要_PHP チュートリアル

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

現在のモジュール内のメソッドを呼び出すには $this を使用しますが、多くの場合、現在のモジュール内で他のモジュールのメソッドが呼び出されることがよくあります。 ThinkPHP には、モジュール間の呼び出しの問題に対処するために、A メソッドと R メソッドという 2 つの特別な大文字メソッドが組み込まれています。

現在、Index モジュールにはインデックス操作があります。User モジュールには showName 操作があります。User モジュールと showName 操作の具体的なコードは次のとおりです。

リーリー
Index モジュールのインデックス操作で上記の showName 操作を呼び出します。

Aメソッドを介してモジュール間で操作を呼び出す

他のモジュールをインスタンス化するためにメソッドが使用されます (new キーワードに相当) モジュールがインスタンス化された後、モジュール内の操作をオブジェクトの形式で呼び出すことができます。

Index モジュールの Index オペレーションで User モジュールの showName オペレーションを呼び出す例:

リーリー
A メソッドは、グループ間呼び出しおよびプロジェクト間呼び出しモジュールもサポートしています。構文は次のとおりです。

A('<プロジェクト名://><グループ名/>モジュール名')

リーリー

R メソッドを介してモジュール間で操作を呼び出す

ThinkPHP は、他のモジュールの操作メソッドを直接呼び出すことができる R メソッドも提供します
A メソッドを使用する上記の例を R メソッドに変更します。 リーリー

R メソッドは、グループ間呼び出しおよびプロジェクト間呼び出しメソッドもサポートしています。構文は次のとおりです。
R('<プロジェクト名://><グループ名/>モジュール名/オペレーション'<, array()>)

リーリー この例は、showName オペレーションがパラメーター 5 を受け入れることを示しています。対応する showName 操作は次のようになります:

リーリー

複数のパラメータを渡すには、R メソッドの array() パラメータ配列に複数の要素を順番に定義するだけです。

A メソッドまたは R メソッド?
上記の例からわかるように、A メソッドと R メソッドはどちらも他のモジュールの操作を呼び出すことができます。A メソッドと R メソッドのどちらを使用する方が良いでしょうか。ここでの提案は次のとおりです。

他のモジュールで複数のメソッドを使用したい場合は、オブジェクトの複数のインスタンス化を避けるために、オブジェクトを通じてモジュールの異なるメソッドを呼び出すメソッド A
を使用することをお勧めします。他のモジュールのメソッドを使用する メソッドの 1 つであり、間違いなく R メソッドが最も簡潔です

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

www.bkjia.com

tru​​ehttp://www.bkjia.com/PHPjc/825495.html技術記事 $this を使用して現在のモジュール内のメソッドを呼び出すことができますが、多くの場合、他のモジュールのメソッドが現在のモジュール内で呼び出されます。 ThinkPHP には、A メソッドと R メソッドという 2 つの特別なメソッドが組み込まれています...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。