MySQL trigger component for Hyperf, Based on a great work of creators:krowinski/php-mysql-replication
- Request
composer require friendsofhyperf/trigger
- Publish
php bin/hyperf.php vendor:publish friendsofhyperf/trigger
// config/autoload/listeners.php
return [
FriendsOfHyperf\Trigger\Listener\BindTriggerProcessesListener::class => PHP_INT_MAX,
];
namespace App\Trigger;
use FriendsOfHyperf\Trigger\Annotation\Trigger;
use FriendsOfHyperf\Trigger\Trigger\AbstractTrigger;
use MySQLReplication\Event\DTO\EventDTO;
#[Trigger(table:"table", events:["*"], connection:"default")]
class FooTrigger 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 FriendsOfHyperf\Trigger\Annotation\Subscriber;
use FriendsOfHyperf\Trigger\Subscriber\AbstractSubscriber;
use MySQLReplication\Event\DTO\EventDTO;
#[Subscriber(connection:"default")]
class BarSubscriber extends AbstractSubscriber
{
protected function allEvents(EventDTO $event): void
{
// some code
}
}