安裝
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 協議》,轉載必須註明作者和本文連結