berlioz/event-manager
最新稳定版本:v1.1.0
Composer 安装命令:
composer require berlioz/event-manager
包简介
PHP event manager/dispatcher, respecting PSR-14 (Event Dispatcher) standard.
README 文档
README
Berlioz Event Manager is a PHP event manager/dispatcher, respecting PSR-14 (Event Dispatcher) standard.
For more information, and use of Berlioz Framework, go to website and online documentation : https://getberlioz.com
Installation
Composer
You can install Berlioz Event Manager with Composer, it's the recommended installation.
$ composer require berlioz/event-manager
Dependencies
- PHP ^8.0
- Packages:
- psr/event-dispatcher
Usage
Dispatcher
To initialize the event dispatcher:
use Berlioz\EventManager\EventDispatcher; $dispatcher = new EventDispatcher();
To listen an event:
use Berlioz\EventManager\EventDispatcher; $callback = function($event) { // Do something return $event; }; /** @var EventDispatcher $dispatcher */ // A named event $dispatcher->addEventListener('event.name', $callback); // Your event object $dispatcher->addEventListener(MyEvent::class, $callback);
To dispatch an event:
/** @var EventDispatcher $dispatcher */ use Berlioz\EventManager\Event\CustomEvent; use Berlioz\EventManager\EventDispatcher; // A named event $dispatcher->dispatch(new CustomEvent('event.name')); // Your event object $dispatcher->dispatch(new MyEvent());
Priority
You can define a priority in your listeners. The highest priority is in the first executions.
use Berlioz\EventManager\Listener\ListenerInterface; /** ... */ // Normal priority (0) $dispatcher->addEventListener('event.name', $callback, ListenerInterface::PRIORITY_NORMAL); // High priority (100) $dispatcher->addEventListener('event.name', $callback, ListenerInterface::PRIORITY_HIGH); // Low priority (-100) $dispatcher->addEventListener('event.name', $callback, ListenerInterface::PRIORITY_LOW);
The priority argument is an integer ; you can so define your priority with integer value instead of constant.
Add delegate dispatcher
You can delegate dispatch to another dispatcher who respects PSR-14. The delegated dispatchers are called after, only if event isn't stopped.
use Berlioz\EventManager\EventDispatcher; $dispatcher = new EventDispatcher(); $dispatcher->addEventDispatcher(new MyCustomDispatcher());
Add listener provider
You can add listener providers. Providers are called in the order of addition.
use Berlioz\EventManager\EventDispatcher; $dispatcher = new EventDispatcher(); $dispatcher->addListenerProvider(new MyListenerProvider());
Default listener
The default listener is \Berlioz\EventManager\Listener\Listener. You can define your own default provider, he must
implement \Berlioz\EventManager\Listener\ListenerInterface interface.
To declare this into the dispatcher:
use Berlioz\EventManager\EventDispatcher; use Berlioz\EventManager\Provider\ListenerProvider;$myDefaultProvider = new ListenerProvider(); $dispatcher = new EventDispatcher(defaultProvider: $myDefaultProvider);
统计信息
- 总下载量: 5.81k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 1
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2021-04-01