thinkphp6 订阅
event.php
<?php // 事件定义文件 return [ 'bind' => [ 'UserLogin' => 'app\event\UserLogin', 'UserLogout' => 'app\event\UserLogin', ], 'listen' => [ 'AppInit' => [], 'HttpRun' => [], 'HttpEnd' => [], 'LogLevel' => [], 'LogWrite' => [], ], 'subscribe' => [ 'app\subscribe\User', ], ];
app\event\UserLogin.php
<?php declare (strict_types = 1); namespace app\event; use app\model\User; class UserLogin { public $user; public function __construct(User $user) { $this->user = $user; } }
app\subscribe\User.php
<?php declare (strict_types=1); namespace app\subscribe; use think\Event; class User { public function onUserLogin($user) { var_dump($user); echo 5; // UserLogin事件响应处理 } public function onUserLogout($user) { var_dump($user); echo 4; // UserLogout事件响应处理 } public function subscribe(Event $event) { $event->listen('UserLogout', [$this, 'onUserLogout']); $event->listen('UserLogin', [$this, 'onUserLogin']); } }
控制器
<?php
namespace app\controller\admin;
use app\event\UserLogin;
use app\model\User;
use think\Request;
class Index extends Base
{
public function index(Request $request){
$userObj = new User();
$user = $userObj->where('id',1)->find();
event(new UserLogin($user));
event(\app\subscribe\User::class);
echo '这是首页';
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
2019-12-19 div内滚动 瀑布流