halimonalexander/dispatcher

Dispatcher library

Installs: 32

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 0

Open Issues: 0

pkg:composer/halimonalexander/dispatcher

v1.3.3 2021-02-17 07:18 UTC

This package is auto-updated.

Last update: 2025-09-17 17:28:22 UTC


README

Events dispatcher Library

main branch parameter

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());