https://github.com/smoren/event-router-php
Event router
https://github.com/smoren/event-router-php
event eventbus router
Last synced: about 1 month ago
JSON representation
Event router
- Host: GitHub
- URL: https://github.com/smoren/event-router-php
- Owner: Smoren
- License: mit
- Created: 2022-12-13T16:59:18.000Z (almost 3 years ago)
- Default Branch: master
- Last Pushed: 2024-03-03T15:32:35.000Z (over 1 year ago)
- Last Synced: 2025-03-28T13:21:13.607Z (6 months ago)
- Topics: event, eventbus, router
- Language: PHP
- Homepage:
- Size: 53.7 KB
- Stars: 9
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# event-router

[](https://scrutinizer-ci.com/g/Smoren/event-router-php/?branch=master)
[](https://scrutinizer-ci.com/g/Smoren/event-router-php/?branch=master)

[](https://opensource.org/licenses/MIT)Router for flexible configuring of event handling behaviors.
### How to install to your project
```
composer require smoren/event-router
```### Unit testing
```
composer install
composer test-init
composer test
```### Usage
```php
use Smoren\EventRouter\Components\EventRouter;
use Smoren\EventRouter\Interfaces\EventInterface;
use Smoren\EventRouter\Events\Event;
use Smoren\EventRouter\Structs\EventConfig;
use Smoren\EventRouter\Loggers\ArrayLogger;$router = new EventRouter(10, new ArrayLogger());
$router
->on(new EventConfig('origin1'), function(EventInterface $event) {
return null;
})
->on(new EventConfig('origin1', 'recursive_single'), function(EventInterface $event) {
return new Event('origin2', 'test');
})
->on(new EventConfig('origin1', 'recursive_multiple'), function(EventInterface $event) {
return [
new Event('origin1', 'recursive_single'),
new Event('origin2', 'test'),
];
})
->on(new EventConfig('origin2'), function(EventInterface $event) {
return null;
});$router->send(new Event('origin1', 'first'));
```