Cet article vous apporte des connaissances pertinentes sur thinkphp, qui présente principalement les problèmes liés à la liaison, à la surveillance et à l'abonnement des événements. L'avantage des événements par rapport au middleware est que les événements sont positionnés avec plus de précision que le middleware. , j'espère que cela aidera tout le monde.
Étude recommandée : "Tutoriel vidéo PHP"
L'avantage des événements par rapport au middleware est que les événements sont positionnés avec plus de précision (ou plus granulaires) que le middleware, et plus Extensions adaptées à certains scénarios commerciaux. Par exemple, nous rencontrons généralement des utilisateurs qui doivent effectuer une série d'opérations après leur inscription ou leur connexion. Grâce au système d'événements, nous pouvons terminer l'expansion des opérations de connexion sans envahir le code d'origine, réduisant ainsi le couplage du système tout en répondant aux besoins de l'entreprise. .
Explication sur le site officiel, il n'y a pas d'exemples Ici, je vais simplement vous dire comment l'utiliser, je découvrirai plus d'opérations après l'avoir utilisé
php think make:listener UserLogin
php think make:listener UserLogin
一般建议直接在事件定义文件(event.php)中定义对应事件的监听。
return [ 'bind' => [ 'UserLogin' => 'app\event\UserLogin', // 更多事件绑定 ], 'listen' => [ 'UserLogin' => ['app\listener\UserLogin'], // 更多事件监听 ], ];
php think make:subscribe User
event.php<?php namespace app\subscribe; class User { public function onUserLogin($user) { // UserLogin事件响应处理 } public function onUserLogout($user) { // UserLogout事件响应处理 } }
Ligne de commande php think make:subscribe User
<?php namespace app\subscribe; use think\Event; class User { public function onUserLogin($user) { // UserLogin事件响应处理 } public function onUserLogout($user) { // UserLogout事件响应处理 } public function subscribe(Event $event) { $event->listen('UserLogin', [$this,'onUserLogin']); $event->listen('UserLogout',[$this,'onUserLogout']); } }3. Abonnement personnalisé
Si vous souhaitez personnaliser la méthode d'abonnement (ou la spécification de la méthode), vous pouvez définir l'implémentation de la méthode d'abonnement. return [
'bind' => [
'UserLogin' => 'app\event\UserLogin',
// 更多事件绑定
],
'listen' => [
'UserLogin' => ['app\listener\UserLogin'],
// 更多事件监听
],
'subscribe' => [
'app\subscribe\User',
// 更多事件订阅
],
];
Ensuite, enregistrez l'abonné à l'événement dans le fichier de définition de l'événement
// 触发UserLogin事件 用于执行用户登录后的一系列操作 Event::trigger('UserLogin'); 或者使用助手函数 event('UserLogin');🎜L'événement est déclenché🎜🎜rrreee🎜Apprentissage recommandé : "🎜Tutoriel vidéo PHP🎜"🎜🎜
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!