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.php
到 config/
cp vendor/huangdijia/laravel-trigger/config/trigger.php config/
复制路由 routes/trigger.php
到 routes/
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 协议》,转载必须注明作者和本文链接
推荐文章: