Maison >développement back-end >tutoriel php >ThinkPHP implémente les appels inter-modules
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"; } } ?>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éthodeUne 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('User'); // 调用 User 模块中的方法 $User->showName(); } } ?>Une méthode prend également en charge les appels entre groupes et les appels inter-projets Module, la syntaxe est la suivante :
A('b17eb08850f98245d7ebfc04b47931d62ccb82f6c56ddf2dec97fe99b999f84bnom du module')
// 常用例子如下 A('User') //调用当前项目的 User 模块,如上面的例子 A('Admin://User') //调用 Admin 项目的 User 模块 A('Admin/User') //调用 Admin 分组的 User 模块 A('Admin://Tool/User') //调用 Admin 项目 Tool 分组的 User 模块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('User/showName'); } } ?>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('b17eb08850f98245d7ebfc04b47931d62ccb82f6c56ddf2dec97fe99b999f84bnom du module/opération'b5c1bd912a348ab1b5010fa8ab940bbc)
// 常用例子如下 R('User/showName') //调用当前项目的 User 模块的 showName 方法,如上面的例子 R('Admin://User/showName') //调用 Admin 项目 User 模块的 showName 方法 R('Admin/User/showName') //调用 Admin 分组 User 模块的 showName 方法 R('Admin://Tool/User/info') //调用 Admin 项目 Tool 分组的 User 模块的 info 方法 R 方法接收参数 R 方法也支持对调用的方法传入参数,因为实际上调动的操作,可能是需要传入参数的。 R 方法的第二个参数为数组,该数组将作为被调用操作的参数传入。如下面的例子所示: R( 'User/showName',array(5) );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 参数获取用户信息的代码 } } ?>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!