rudra / event-dispatcher
Rudra framework
v26.9.3
2026-07-03 16:54 UTC
Requires
- php: ^8.3
- rudra/container: v26.9.3
- rudra/docs: v26.9.3
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
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/