Skip to content

A simple event dispatcher using a priority queue and compliant with the PSR-14

License

Notifications You must be signed in to change notification settings

piko-framework/event-dispatcher

Repository files navigation

Piko event-dispatcher

Tests Coverage Status

This package offers a simple event dispatcher using an event priority queue, following the PSR-14 Event Dispatcher recommendation.

Installation

Via Composer

composer require piko/event-dispatcher

Then ensure that the following file is included in your PHP project:

require 'vendor/autoload.php'; // The Composer autoloader

usage

use Piko\Event;
use Piko\ListenerProvider;
use Piko\EventDispatcher;

class MyEvent extends \Piko\Event
{
    public $value;
}

$provider = new ListenerProvider();
$dispatcher = new EventDispatcher($provider);
$event = new MyEvent();

$provider->addListenerForEvent(MyEvent::class, function(MyEvent $event) {
    $event->value .= 'World !';
});

$provider->addListenerForEvent(MyEvent::class, function(MyEvent $event) {
    $event->value .= 'Hello ';
}, 10); // Set the priority to 10

$dispatcher->dispatch($event);

echo $event->value; // Hello World!

About

A simple event dispatcher using a priority queue and compliant with the PSR-14

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages