Добавление наблюдателя (Observer):
php rudra create:observer
Краткий вариант:
php rudra cr:ob
Enter observer name: test
Enter container: web
Результат:
<?php
namespace App\Containers\Web\Observers;
use Rudra\EventDispatcher\ObserverInterface;
class TestObserver implements ObserverInterface
{
public function onEvent()
{
}
}
Добавление наблюдателя (Observer):
use App\Containers\Web\Observers\TestObserver;
Dispatcher::attachObserver( 'event', [TestObserver::class, 'onEvent']);
Для добавления глобально рекомендуется добавить вышеуказанное в метод eventRegistration в ShipController находящийся в app\Ship\ShipController.php:
public function eventRegistration()
{
Dispatcher::attachObserver( 'event', [TestObserver::class, 'onEvent']);
}
Отключение наблюдателя (Observer):
Dispatcher::detachObserver( 'event', TestObserver::class);
Инициация события (event):
Dispatcher::notify('event');
С передачей параметров:
<?php
namespace App\Containers\Web\Observers;
use Rudra\EventDispatcher\ObserverInterface;
class TestObserver implements ObserverInterface
{
public function onEvent(string $message)
{
dump($message);
}
}
При добавлении:
Dispatcher::attachObserver( 'event', [TestObserver::class, 'onEvent'], 'Hello World!!!');
При инициации события:
Dispatcher::notify('event', 'Hello World!!!');
Просмотр всех имеющихся наблюдателей (observers):
php rudra observers