symbiont / dispatcher
Event Dispatcher Library
v1.0.2
2024-06-28 13:48 UTC
Requires
- php: ^8.2
- symbiont/support-forward-call: ^1.0
Requires (Dev)
- mockery/mockery: ^1.6
- phpunit/phpunit: ^11.1
README
Simple event dispatcher
This package is work in progress!
Requirements
php 8.2
Installation
composer require symbiont/dispatcher
Usage
Using EventDispatcher
and Dispatcher
.
use Symbiont\Dispatcher\{Dispatcher, EventDispatcher};
// global event dispatcher
EventDispatcher::register('test', function() {
return 'test';
});
EventDispatcher::once('test', function() {
return 'once';
})
EventDispatcher::dispatch('test');
// local event dispatcher
$dispatcher = new Dispatcher;
$dispatcher->register('test', function() {
return 'test';
});
$dispatcher->once('test', function() {
return 'once';
});
$dispatcher->dispatch('test');
Implementing an event dispatcher in terms of callbacks using Callbackable
and DispatchesEvent
trait.
use Symbiont\Dispatcher\Contracts\Callbackable;
use Symbiont\Dispatcher\Concerns\DispatchesEvent;
class Awesome implements Callbackable {
use DispatchesEvent;
public function load() {
$this->trigger('beforeLoad');
// something to load ..
$this->trigger('afterLoad');
}
}
$awesome = new Awesome;
$awesome->on('afterLoad', function() {
// something to do after load ..
});
$awesome->load();
Documentation
This documentation only documents the technical usage of this package with little to no text.
- Documentation: https://symbiont.gitlab.io/dispatcher
- Gitlab: https://gitlab.com/symbiont/dispatcher
Tests
composer test