halimonalexander / dispatcher
Dispatcher library
v1.3.3
2021-02-17 07:18 UTC
Requires
- php: ^7.4
Requires (Dev)
- nunomaduro/phpinsights: dev-master
- php-coveralls/php-coveralls: ^2.0
- phpstan/phpstan: ^0.12
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: ^3.5
- vimeo/psalm: ^4.4
README
Events dispatcher Library
Install
$ composer require halimonalexander/dispatcher
Example of usage
use HalimonAlexander\Dispatcher\Dispatcher; use HalimonAlexander\Dispatcher\Event; use HalimonAlexander\Dispatcher\Listener; class FooBarEvent extends Event { public const EVENT_NAME = 'FooBar'; public function foo(): void { //... } public function bar(): void { //... } } class FooListener extends Listener { public function __invoke(Event $event) : void { if ($event instanceof FooBarEvent) { $event->foo(); } } } class BarListener extends Listener { public function __invoke(Event $event) : void { if ($event instanceof FooBarEvent) { $event->bar(); } } } $dispatcher = new Dispatcher(); $dispatcher->addListener(FooBarEvent::EVENT_NAME, new FooListener()); $dispatcher->addListener(FooBarEvent::EVENT_NAME, new BarListener()); // ... $dispatcher->dispatch(FooBarEvent::EVENT_NAME, new FooBarEvent());