Rudra FrameworkRudra Framework

Добавление слушателя (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