ThinkPHP6事件系统实战:构建松耦合业务架构的终极指南

2025-07-31 0 565

ThinkPHP6事件系统实战:构建松耦合业务架构的终极指南

一、架构优势

事件系统使业务耦合度降低80%,功能扩展效率提升300%

// 传统硬编码方式
$order->save();
$sms->send();
$log->write();

// 事件驱动方式
event('OrderCreated', $order);

二、核心机制

1. 事件定义与触发

// 定义事件类
namespace appevent;
class OrderCreated
{
    public $order;
    public function __construct($order) {
        $this->order = $order;
    }
}

// 触发事件
event(new OrderCreated($order));

2. 监听器注册

// 事件监听器
namespace applistener;
class SendOrderNotification
{
    public function handle($event)
    {
        // 发送短信通知
        SMS::send($event->order->mobile);
    }
}

// 注册监听器
return [
    'OrderCreated' => [
        'SendOrderNotification',
        'applistenerWriteOrderLog'
    ]
];

三、高级应用

1. 异步事件处理

// 配置异步队列
'event' => [
    'async' => true,
    'queue' => 'redis'
]

// 定义异步监听器
class ProcessOrderAsync
{
    public $queue = true;
    
    public function handle($event)
    {
        // 耗时操作
        Report::generate($event->order);
    }
}

2. 事件订阅系统

// 定义订阅者
namespace appsubscribe;
class UserSubscribe
{
    public function onUserLogin($user)
    {
        // 记录登录日志
    }

    public function subscribe()
    {
        return [
            'UserLogin' => 'onUserLogin'
        ];
    }
}

// 注册订阅者
return [
    'subscriber' => [
        'appsubscribeUserSubscribe'
    ]
];

四、完整案例

电商订单系统

// OrderController.php
public function create()
{
    $order = new Order(input());
    if ($order->save()) {
        event(new OrderCreated($order));
        return success('订单创建成功');
    }
}

// 事件监听器配置
return [
    'OrderCreated' => [
        'applistenerSendOrderNotification', // 发送通知
        'applistenerUpdateInventory',      // 库存更新
        'applistenerGenerateInvoice',      // 生成发票
        'applistenerProcessCommission'    // 计算佣金
    ],
    'OrderPaid' => [
        'applistenerShipOrder'            // 订单发货
    ]
];

function runDemo() {
alert(‘在ThinkPHP6项目中创建event.php和listener目录即可实践’);
}

ThinkPHP6事件系统实战:构建松耦合业务架构的终极指南
收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

淘吗网 thinkphp ThinkPHP6事件系统实战:构建松耦合业务架构的终极指南 https://www.taomawang.com/server/thinkphp/705.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务