ThinkPHP implémente les appels inter-modules

不言
Libérer: 2023-03-30 08:38:02
original
1852 Les gens l'ont consulté

Cet article présente principalement l'implémentation des appels inter-modules dans ThinkPHP, qui a une certaine valeur de référence. Maintenant, je le partage avec tout le monde. Les amis dans le besoin peuvent s'y référer

Utilisez $this pour appeler des méthodes. le module actuel, mais dans de nombreux cas, les méthodes d'autres modules sont souvent appelées dans le module actuel. Cet article présente principalement les opérations d'appel inter-modules ThinkPHP. Les amis qui en ont besoin peuvent se référer à

L'utilisation de $this peut appeler des méthodes dans le module actuel, mais dans de nombreux cas, les méthodes d'autres modules sont souvent appelées dans le module actuel. module. ThinkPHP a intégré deux méthodes spéciales en majuscules, la méthode A et la méthode R, pour traiter les problèmes d'appel entre modules.

Actuellement, il existe une opération d'index dans le module Index. Le module User a une opération showName. Les codes spécifiques pour le module User et l'opération showName sont les suivants :

<?php
class UserAction extends Action{
 public function showName(){
 echo "Hello World";
 }
}
?>
Copier après la connexion

Nous allons L'opération showName ci-dessus est appelée dans l'opération d'index du module Index.

Opération d'appel inter-modules via une méthode

Une méthode est utilisée pour instancier d'autres modules (équivalent au nouveau mot-clé une fois le module instancié, il peut être appelé dans le module comme). une opération.

Appelez l'exemple d'opération showName du module User dans l'opération d'index du module Index :

<?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();
 }
}
?>
Copier après la connexion

Une méthode prend également en charge les appels entre groupes et les appels inter-projets Module, la syntaxe est la suivante :

A('nom du module')

// 常用例子如下
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 模块
Copier après la connexion

Appeler des opérations entre modules via des méthodes R


ThinkPHP fournit également des méthodes R qui peuvent appeler directement les méthodes de fonctionnement d'autres modules. Prenons l'exemple ci-dessus d'utilisation de la méthode A Change to R :

<?php
class IndexAction extends Action{
 public function index(){
 header("Content-Type:text/html; charset=utf-8");
 // 调用 User 模块中的方法
 R(&#39;User/showName&#39;);
 }
}
?>
Copier après la connexion

La méthode R prend également en charge les méthodes d'appel inter-groupes et inter-projets, la la syntaxe est la suivante :

R('nom du module/opération'<, 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) );
Copier après la connexion

Cet exemple indique que l'opération showName acceptera un paramètre de 5. L'opération showName correspondante peut être :

<?php
class UserAction extends Action{
 public function showName($id){
 // 根据 id 参数获取用户信息的代码
 }
}
?>
Copier après la connexion

Pour transmettre plusieurs paramètres, puis définir plusieurs tableaux de paramètres array() de la méthode R dans l'élément de séquence.


Une méthode ou une méthode R ?
Comme le montre l'exemple ci-dessus, la méthode A et la méthode R peuvent appeler les opérations d'autres modules. Est-il préférable d'utiliser la méthode A ou la méthode R ? Les suggestions ici sont les suivantes :
Si vous souhaitez utiliser plusieurs méthodes dans d'autres modules, il est recommandé d'utiliser la méthode A pour appeler différentes méthodes du module via des objets afin d'éviter d'instancier l'objet plusieurs fois Si vous n'avez besoin d'utiliser qu'une des méthodes des autres modules, la méthode R est sans doute la plus concise .

Recommandations associées :

Exemple détaillé d'implémentation ThinkPHP des données de mise à jour (démo)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal