actualwave/events
Composer 安装命令:
composer require actualwave/events
包简介
Includes Event, EventDispatcher classes and IEventDispatcher interface for events support.
README 文档
README
Events allow easy setup and use for communication between components in application. Event can notify about state changes and pass data of any kind.
Installation
Via composer
composer require actualwave/events
Usage
To use events you don't need to implement any interfaces, just create EventDispatcher
and register some listeners for events.
class Broadcaster { const EVENT_FIRST = 'eventFirst'; const EVENT_SECOND = 'eventSecond'; const EVENT_THIRD = 'eventThird'; /** * @var \aw\events\EventDispatcher */ private $_dispatcher; //TODO add dispatcher target test public function __construct() { $this->_dispatcher = new \aw\events\EventDispatcher(); } public function addHandler(string $eventType, callable $handler) { $this->_dispatcher->addEventListener($eventType, $handler); } public function doFirst() { echo 'do first and tell '; $this->_dispatcher->dispatchEvent(self::EVENT_FIRST); } public function doSecond() { echo 'do second and tell '; $this->_dispatcher->dispatchEvent(new \aw\events\ValueEvent(self::EVENT_SECOND, 'pass some data')); } public function doThird() { echo 'do third and tell '; $this->_dispatcher->dispatchEvent(self::EVENT_THIRD); } }
After EventDispatcher is instantiated, you can add listeners and dispatch events.
$target = new Broadcaster(); // register event handlers $target->addHandler(Broadcaster::EVENT_FIRST, function ($event) { echo $event->type . PHP_EOL; }); function secondHandler($event) { echo 'handler was called with data: '.$event->value.PHP_EOL; } $target->addHandler(Broadcaster::EVENT_SECOND, 'secondHandler'); $target->addHandler(Broadcaster::EVENT_THIRD, [new class () { public function eventHandler($event) { echo 'event has target: '.json_encode(isset($event->target)).PHP_EOL; } }, 'eventHandler']); // broadcast events $target->doThird(); // do third and tell event has target: true $target->doSecond(); // do second and tell handler was called with data: pass some data $target->doFirst(); // do first and tell eventFirst
统计信息
- 总下载量: 26
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2016-01-05