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 '这是首页';
}
}
复制代码

 


posted @   酷酷的城池  阅读(51)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
历史上的今天:
2019-12-19 div内滚动 瀑布流
点击右上角即可分享
微信分享提示