huangdijia / hyperf-trigger
该包已被废弃且不再维护。未建议替代包。
hyperf的MySQL触发器。
0.1.2
2020-12-30 09:55 UTC
Requires
- hyperf/di: ^2.0
- hyperf/event: ^2.0
- hyperf/process: ^2.0
- hyperf/utils: ^2.0
- krowinski/php-mysql-replication: ^6.2
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.04
- phpstan/phpstan: ^0.12
- swoole/ide-helper: ^4.5
README
hyperf的MySQL触发器组件
⚠️ 已迁移至 friendsofhyperf/trigger
安装
- 请求
composer require huangdijia/hyperf-trigger
- 发布
php bin/hyperf.php vendor:publish huangdijia/hyperf-trigger
自定义触发器
namespace App\Trigger; use Huangdijia\Trigger\Annotation\Trigger; use Huangdijia\Trigger\Trigger\AbstractTrigger; use MySQLReplication\Event\DTO\EventDTO; /** * single * @Trigger(table="table" on="write", replication="default") * or multi events by array * @Trigger(table="table" on={"write", "update", "delete"}, replication="default") * or multi events by string * @Trigger(table="table" on="write,update,delete", replication="default") * or all events * @Trigger(table="table" on="*", replication="default") */ class SomeTableTrigger extends AbstractTrigger { public function onWrite(array $new) { var_dump($new); } public function onUpdate(array $old, array $new) { var_dump($old, $new); } public function onDelete(array $old) { var_dump($old); } }
自定义订阅者
namespace App\Subscriber; use Huangdijia\Trigger\Annotation\Subscriber; use Huangdijia\Trigger\Subscriber\AbstractEventSubscriber; use MySQLReplication\Event\DTO\EventDTO; /** * @Subscriber(replication="default") */ class DemoSubscriber extends AbstractEventSubscriber { protected function allEvents(EventDTO $event): void { // some code } }
设置过程
- 默认
namespace App\Process; use Huangdijia\Trigger\Process\ConsumeProcess; use Hyperf\Process\Annotation\Process; /** * @Process */ class TriggerProcess extends ConsumeProcess { }
- 自定义复制
namespace App\Process; use Huangdijia\Trigger\Process\ConsumeProcess; use Hyperf\Process\Annotation\Process; /** * @Process */ class CustomProcess extends ConsumeProcess { protected $replication = 'custom_replication'; }