MySQL 事件监听 huangdijia/Laravel-trigger

安装

Laravel

composer 安装

composer require huangdijia/laravel-trigger

发布配置

php artisan vendor:publish --provider="Huangdijia\Trigger\TriggerServiceProvider"

Lumen

composer 安装

composer require huangdijia/laravel-trigger

复制配置 config/trigger.phpconfig/

cp vendor/huangdijia/laravel-trigger/config/trigger.php config/

复制路由 routes/trigger.phproutes/

cp vendor/huangdijia/laravel-trigger/routes/trigger.php routes/

编辑 bootstrap/app.php,注册服务及加载配置:

$app->register(Huangdijia\Trigger\TriggerServiceProvider::class);
...
$app->configure('trigger');

配置

编辑 .env, 配置以下内容:

TRIGGER_HOST=192.168.xxx.xxx
TRIGGER_PORT=3306
TRIGGER_USER=username
TRIGGER_PASSWORD=password
...

启动服务

php artisan trigger:start

订阅者

<?php
namespace App\Listeners;

use Huangdijia\Trigger\EventSubscriber;

class ExampeEvent extends EventSubscriber
{
    public function onUpdate(UpdateRowsDTO $event)
    {
        //
    }

    public function onDelete(DeleteRowsDTO $event)
    {
        //
    }

    public function onWrite(WriteRowsDTO $event)
    {
        //
    }
}

事件路由

use Huangdijia\Trigger\Facades\Trigger;

单表单事件

Trigger::on('database.table', 'write', function($event) { /* do something */ });

多表多事件

Trigger::on('database.table1,database.table2', 'write,update', function($event) { /* do something */ });

多事件

Trigger::on('database.table1,database.table2', [
    'write'  => function($event) { /* do something */ },
    'update' => function($event) { /* do something */ },
]);

路由到操作

Trigger::on('database.table', 'write', 'App\\Http\\Controllers\\ExampleController'); // call default method 'handle'
Trigger::on('database.table', 'write', 'App\\Http\\Controllers\\ExampleController@write');

查看事件列表

php artisan trigger:list

终止服务

php artisan trigger:terminate

更多事件说明参考 EventSubscribers

本作品采用《CC 协议》,转载必须注明作者和本文链接
游离不2
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!