不可變事件派發器
ImmutableEventDispatcher 是一個鎖定或凍結的事件派發器。此派發器無法註冊新的監聽器或訂閱者。
ImmutableEventDispatcher
接受另一個事件派發器,其中包含所有監聽器和訂閱者。不可變派發器只是原始派發器的代理。
要使用它,首先建立一個正常的 EventDispatcher
派發器並註冊一些監聽器或訂閱者
1 2 3 4 5 6 7 8 9
use Symfony\Component\EventDispatcher\EventDispatcher;
use Symfony\Contracts\EventDispatcher\Event;
$dispatcher = new EventDispatcher();
$dispatcher->addListener('foo.action', function (Event $event): void {
// ...
});
// ...
現在,將其注入到 ImmutableEventDispatcher
中
1 2 3 4
use Symfony\Component\EventDispatcher\ImmutableEventDispatcher;
// ...
$immutableDispatcher = new ImmutableEventDispatcher($dispatcher);
您需要在您的專案中使用這個新的派發器。
如果您嘗試執行修改派發器的方法 (例如 addListener()
),則會拋出 BadMethodCallException
。
這項作品,包括程式碼範例,以 Creative Commons BY-SA 3.0 授權條款發佈。