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"; } } ?>
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(); } } ?>
A('
// 常用例子如下 A('User') //调用当前项目的 User 模块,如上面的例子 A('Admin://User') //调用 Admin 项目的 User 模块 A('Admin/User') //调用 Admin 分组的 User 模块 A('Admin://Tool/User') //调用 Admin 项目 Tool 分组的 User 模块
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'); } } ?>
R('
// 常用例子如下 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) );
<?php class UserAction extends Action{ public function showName($id){ // 根据 id 参数获取用户信息的代码 } } ?>
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!