rudra / event-dispatcher
Rudra framework
v26.7
2026-06-23 12:00 UTC
Requires
- php: ^8.3
- rudra/container: v26.7
- rudra/docs: v26.7
README
Rudra-EventDispatcher | API
Install
composer require rudra/event-dispatcher
Usage
use Rudra\EventDispatcher\EventDispatcherFacade as Dispatcher;
Add a listener
Dispatcher::addListener('app.listener', [AppListener::class, 'onEvent']); Dispatcher::addListener('app.closure', function () { Rudra::config()->set(["closure" => "closure"]); }); Dispatcher::addListener('before', [new TestController(), 'before']);
Dispatch an event
Dispatcher::dispatch('app.listener', 123); // For Closure listeners, dispatch returns the Closure itself $closure = Dispatcher::dispatch('app.closure'); $closure(); Dispatcher::dispatch('before');
Attach an observer
Dispatcher::attachObserver("before", [TestController::class, "before"]); Dispatcher::attachObserver("closure", ['closure', function () { Rudra::config()->set(['closure' => "closure"]); }]); $test = new TestController(); Dispatcher::attachObserver("subscriberObject", [$test, "subscriberObject"], 123);
Detach an observer
Dispatcher::detachObserver("before", TestController::class);
Notify the observers
Dispatcher::notify("before"); Dispatcher::notify("closure"); Dispatcher::notify("subscriberObject");
Get all listeners / observers
Dispatcher::getListeners(); Dispatcher::getObservers();
License
This project is licensed under the Mozilla Public License 2.0 (MPL-2.0) — a free, open-source license that:
- Requires preservation of copyright and license notices,
- Allows commercial and non-commercial use,
- Requires that any modifications to the original files remain open under MPL-2.0,
- Permits combining with proprietary code in larger works.
📄 Full license text: LICENSE
🌐 Official MPL-2.0 page: https://mozilla.org/MPL/2.0/