Skip to content

Jagepard/Rudra-EventDispatcher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

143 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PHPunit Maintainability CodeFactor Coverage Status

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/

Packages

 
 
 

Contributors

Languages