Добавление слушателя (Listener):
php rudra create:listener
Краткий вариант:
php rudra cr:l
Enter listener name: test
Enter container: web
Результат:
<?php
namespace App\Containers\Web\Listeners;
class TestListener
{
}
Добавляем метод для вызова при определенном событии:
<?php
namespace App\Containers\Web\Listeners;
class TestListener
{
public function onEvent()
{
dump(__CLASS__);
}
}
Добавление слушателя (Listener):
use App\Containers\Web\Listeners\TestListener;
Dispatcher::addListener('event', [TestListener::class, 'onEvent']);
Для добавления глобально рекомендуется добавить вышеуказанное в метод eventRegistration в ShipController находящийся в app\Ship\ShipController.php:
public function eventRegistration()
{
Dispatcher::addListener('event', [TestListener::class, 'onEvent']);
}
Инициация события (event):
Dispatcher::dispatch('event');
С передачей параметров:
<?php
namespace App\Containers\Web\Listeners;
class TestListener
{
public function onEvent(string $message)
{
dump($message);
}
}
Dispatcher::dispatch('event', 'Hello World!!!');
Просмотр всех имеющихся слушателей (listeners):
php rudra listeners