ホームページ > バックエンド開発 > PHPチュートリアル > ThinkPHP はモジュール間の呼び出しを実装します

ThinkPHP はモジュール間の呼び出しを実装します

不言
リリース: 2023-03-30 08:38:02
オリジナル
1867 人が閲覧しました

この記事では主に ThinkPHP でのモジュール間呼び出しの実装を紹介します。これには特定の参照値があります。必要な友達はそれを参照できます。

$this を使用すると、現在のモジュール内のメソッドを呼び出すことができます。多くの場合、他のモジュールのメソッドが現在のモジュールで呼び出されることがよくあります。この記事では主にThinkPHPのモジュール間呼び出し操作を紹介しますので、必要な方は参考にしてください

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

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

<?php
class UserAction extends Action{
 public function showName(){
 echo "Hello World";
 }
}
?>
ログイン後にコピー

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

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

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

<?php
class IndexAction extends Action{
 public function index(){
 header("Content-Type:text/html; charset=utf-8");
 // 实例化 User 模块
 $User = A(&#39;User&#39;);
 // 调用 User 模块中的方法
 $User->showName();
 }
}
?>
ログイン後にコピー

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

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

// 常用例子如下
A(&#39;User&#39;) //调用当前项目的 User 模块,如上面的例子
A(&#39;Admin://User&#39;) //调用 Admin 项目的 User 模块
A(&#39;Admin/User&#39;) //调用 Admin 分组的 User 模块
A(&#39;Admin://Tool/User&#39;) //调用 Admin 项目 Tool 分组的 User 模块
ログイン後にコピー

R メソッドを介してモジュール間の操作を呼び出す
ThinkPHP は、他のモジュールの操作メソッド、A メソッドを使用した上記の例は、R メソッドに変更されます:

<?php
class IndexAction extends Action{
 public function index(){
 header("Content-Type:text/html; charset=utf-8");
 // 调用 User 模块中的方法
 R(&#39;User/showName&#39;);
 }
}
?>
ログイン後にコピー

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

R('<プロジェクト名://><グループ名/>モジュール名/操作'<, array()>)

// 常用例子如下
R(&#39;User/showName&#39;) //调用当前项目的 User 模块的 showName 方法,如上面的例子
R(&#39;Admin://User/showName&#39;) //调用 Admin 项目 User 模块的 showName 方法
R(&#39;Admin/User/showName&#39;) //调用 Admin 分组 User 模块的 showName 方法
R(&#39;Admin://Tool/User/info&#39;) //调用 Admin 项目 Tool 分组的 User 模块的 info 方法
R 方法接收参数
R 方法也支持对调用的方法传入参数,因为实际上调动的操作,可能是需要传入参数的。
R 方法的第二个参数为数组,该数组将作为被调用操作的参数传入。如下面的例子所示:
R( &#39;User/showName&#39;,array(5) );
ログイン後にコピー

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

<?php
class UserAction extends Action{
 public function showName($id){
 // 根据 id 参数获取用户信息的代码
 }
}
?>
ログイン後にコピー

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

A メソッドまたは R メソッド?
上記の例からわかるように、A メソッドと R メソッドはどちらも他のモジュールの操作を呼び出すことができます。A メソッドと R メソッドのどちらを使用する方が良いでしょうか。ここでの提案は次のとおりです。 他のモジュールで複数のメソッドを使用したい場合は、オブジェクトの複数のインスタンス化を避けるために、オブジェクトを通じてモジュールの異なるメソッドを呼び出すメソッド A を使用することをお勧めします。他のモジュールのメソッドを使用する メソッドの 1 つであり、間違いなく R メソッドが最も簡潔です

関連する推奨事項:

ThinkPHP実装更新データ例の詳細な説明(デモ)

以上がThinkPHP はモジュール間の呼び出しを実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート