huangdijia/hyperf-trigger

该包已被废弃且不再维护。未建议替代包。

hyperf的MySQL触发器。

0.1.2 2020-12-30 09:55 UTC

This package is auto-updated.

Last update: 2021-02-25 01:26:46 UTC


README

Latest Stable Version Total Downloads GitHub license

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';
}