dakwamine/component-based-object-event-dispatcher

Simple event dispatcher using dakwamine/component-based-object.

Maintainers

👁 Dakwamine

Package info

github.com/Dakwamine/component-based-object-event-dispatcher

pkg:composer/dakwamine/component-based-object-event-dispatcher

Statistics

Installs: 333

Dependents: 1

Suggesters: 0

Stars: 0

Open Issues: 0

2.1.0 2026-04-27 19:33 UTC

Requires (Dev)

None

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT e8bce4ef2a95d64186fe1ae01b04cfa0578b2ccb

  • Quang-Minh DANG <dakwamine.woop@gmail.com>

This package is auto-updated.

Last update: 2026-06-27 20:04:59 UTC


README

A simple event dispatcher which works with "dakwamine/component-based-object": "^1.0" and "psr/event-dispatcher": "^1.0".

Basic usage

<?php

use Dakwamine\Component\Event\EventDispatcher;
use Dakwamine\Component\Event\EventInterface;
use Dakwamine\Component\Event\EventListenerInterface;
use Dakwamine\Component\Event\ListenerProvider;

class SomeEvent implements EventInterface
{
 public const EVENT_NAME = 'Any string';

 public function getName(): string
 {
 return static::EVENT_NAME;
 }
}

class SomeEventListener implements EventListenerInterface
{
 public function handleEvent(EventInterface $event): void
 {
 // Do stuff related to $event, like dispatching to other methods.
 if ($event->getName() === SomeEvent::EVENT_NAME) {
 // ...
 }
 }
}

// This object holds the lists of class names per event.
$listenerProvider = new ListenerProvider();

// Register the listener. Optionally set the priority.
$listenerProvider->addListener(SomeEvent::EVENT_NAME, SomeEventListener::class, 42);

// Dispatch the event. Listeners will be instantiated or retrieved by the listener provider.
$eventDispatcher = new EventDispatcher($listenerProvider);
$eventDispatcher->dispatch(new SomeEvent());