Thinkphp6 事件绑定 事件监听 事件订阅

74 篇文章 0 订阅

event.php

<?php


// 事件定义文件
return [
    'bind'      => [
    ],

    'listen'    => [
        'AppInit'  => [],
        'HttpRun'  => [],
        'HttpEnd'  => [],
        'LogLevel' => [],
        'LogWrite' => [],
        'demolistener'    =>    ['\crmeb\listeners\Demolistener'],
    ],

    'subscribe' => [
        crmeb\subscribes\Demosubscribe::class,
    ],
];
 

Demoevent.php

<?php 
namespace crmeb\event;

class Demoevent
{
    
    public function __construct()
    {
        echo '我是事件类!';
    }
}

Demolistener.php

<?php
namespace crmeb\listeners;

class Demolistener

{
    
    public function handle($params)
    
    {
        echo $params;
        echo "事件监听处理";
        
    }
    
}

Demosubscribe.php

<?php

namespace crmeb\subscribes;

class Demosubscribe

{

    public function onDemoLogin($params)

    {
        echo $params;
        echo 'DemoLogin事件响应处理';
        // 事件响应处理

    }

    public function onDemoLogout($params)

    {
        echo $params;
        echo 'DemoLogout事件响应处理';
        // 事件响应处理

    }

}


测试类PublicController.php

<?php

namespace app\api\controller\demo;

use think\facade\Config;
use app\Request;
use think\facade\Event;

/**
 * 公共类
 * Class PublicController
 * @package app\api\controller
 */
class PublicController
{
    //触发事件类
    //http://meishu.local/api/demo/demoevent
    public function demoevent(){
        echo 11;
        
        Event::trigger(new \crmeb\event\Demoevent());
        event(new \crmeb\event\Demoevent());
    }
    
    //使用监听类来执行监听
    //http://meishu.local/api/demo/demolistener
    public function demolistener(){
        echo 11;
        Event::trigger('demolistener','哈哈哈');
        event('demolistener','哎呦喂');
    }
    
    //触发事件订阅者中方法
    //http://meishu.local/api/demo/demosubscribe
    public function demosubscribe(){
        echo 11;
        Event::trigger('DemoLogin','哈哈哈');
        event('DemoLogout','哎呦喂');
    }

}
 

路由文件demo.php

<?php

use think\facade\Route;

/**
 * demo 版本路由
 */
Route::group('demo', function () {
    Route::get('demoevent', 'demo.PublicController/demoevent');
    Route::get('demolistener', 'demo.PublicController/demolistener');
    Route::get('demosubscribe', 'demo.PublicController/demosubscribe');

})->middleware(\app\http\middleware\AllowOriginApiMiddleware::class);
 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梅坞茶坊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值