phpextra / event-manager
Event manager based on reflection, annotations and priority queue
Installs: 9 693
Dependents: 3
Suggesters: 0
Security: 0
Stars: 7
Watchers: 2
Forks: 0
Open Issues: 0
Requires
- php: >=7.2
- psr/log: ^1.0
Requires (Dev)
- friendsofphp/php-cs-fixer: 2.14.*
- phpunit/phpunit: 8.*
README
How it works ?
Both the event and listener are (marker) interfaces. Events support inheritance.
Examples
class UserLoginEvent implements Event { public $userId; } class UserListener implements Listener { /** * Acts on UserLoginEvent or it's descendants */ public function onUserLogin(UserLoginEvent $event) { echo "User listener 1"; } /** * Act on any event */ public function onAnyEvent(Event $event) { echo "User listener 2"; } } $manager = new EventManager(); $manager->add(new UserListener()); $manager->emit(new UserLoginEvent($user));
Result:
> User listener 1
> User listener 2
Installation (Composer)
composer require phpextra/event-manager:5.*
Running tests
composer tests
Running php-cs-fixer
composer fix
Contributing
All code contributions must go through a pull request. Fork the project, create a feature branch, and send me a pull request. To ensure a consistent code base, you should make sure the code follows the coding standards. If you would like to help, take a look at the list of issues.
Authors
Jacek Kobus - kobus.jacek@gmail.com