jimchen/laravel-trigger
Composer 安装命令:
composer require jimchen/laravel-trigger
包简介
MySQL trigger base on MySQLReplication
README 文档
README
Subscribe MySQL events like jQuery, base on php-mysql-replication
MySQL server settings
In your MySQL server configuration file you need to enable replication:
[mysqld]
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 10
max_binlog_size = 100M
binlog_row_image = full
binlog-format = row #Very important if you want to receive write, update and delete row events
Mysql replication events explained https://dev.mysql.com/doc/internals/en/event-meanings.html
Mysql user privileges:
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'user'@'host'; GRANT SELECT ON `dbName`.* TO 'user'@'host';
Installation
Laravel
install
composer require jimchen/laravel-trigger
publish config
php artisan vendor:publish --provider="JimChen\Trigger\TriggerServiceProvider"
Lumen
install
composer require jimchen/laravel-trigger
edit bootstrap/app.php add:
$app->register(JimChen\Trigger\TriggerServiceProvider::class); ... $app->configure('trigger');
publish config and route
php artisan trigger:install [--force]
Configure
edit .env, add:
TRIGGER_HOST=192.168.xxx.xxx TRIGGER_PORT=3306 TRIGGER_USER=username TRIGGER_PASSWORD=password ...
Usage
php artisan trigger:start [-R=xxx]
Subscriber
<?php namespace App\Listeners; use JimChen\Trigger\EventSubscriber; class ExampeSubscriber extends EventSubscriber { public function onUpdate(UpdateRowsDTO $event) { // } public function onDelete(DeleteRowsDTO $event) { // } public function onWrite(WriteRowsDTO $event) { // } }
more subscriber usage
Event Route
common
$trigger->on('database.table', 'write', function($event) { /* do something */ });
multi-tables and multi-evnets
$trigger->on('database.table1,database.table2', 'write,update', function($event) { /* do something */ });
multi-events
$trigger->on('database.table1,database.table2', [ 'write' => function($event) { /* do something */ }, 'update' => function($event) { /* do something */ }, ]);
action as controller
$trigger->on('database.table', 'write', 'App\\Http\\Controllers\\ExampleController'); // call default method 'handle' $trigger->on('database.table', 'write', 'App\\Http\\Controllers\\ExampleController@write');
action as callable
class Foo { public static function bar($event) { dump($event); } } $trigger->on('database.table', 'write', 'Foo@bar'); // call default method 'handle' $trigger->on('database.table', 'write', ['Foo', 'bar']);
action as job
Job
namespace App\Jobs; class ExampleJob extends Job { private $event; public function __construct($event) { $this->event = $event; } public function handle() { dump($this->event); } }
Route
$trigger->on('database.table', 'write', 'App\Jobs\ExampleJob'); // call default method 'dispatch' $trigger->on('database.table', 'write', 'App\Jobs\ExampleJob@dispatch_now');
Event List
php artisan trigger:list [-R=xxx]
Terminate
php artisan trigger:terminate [-R=xxx]
Thanks to
jimchen/laravel-trigger 适用场景与选型建议
jimchen/laravel-trigger 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 87 次下载、GitHub Stars 达 1, 最近一次更新时间为 2020 年 05 月 24 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「mysql」 「laravel」 「trigger」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 jimchen/laravel-trigger 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 jimchen/laravel-trigger 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 jimchen/laravel-trigger 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Dibi is Database Abstraction Library for PHP
PHP library for Broadcastt HTTP API
Laravel library for Broadcastt HTTP API
A Pusher bridge for Laravel 5+
Time and condition based trigger framework for notifications and other things inside Contao Open Source CMS
PHP module for MySql database
统计信息
- 总下载量: 87
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 3
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2020-05-24