Both the event and listener are (marker) interfaces. Events support inheritance.
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
composer require phpextra/event-manager:5.*
composer tests
composer fix
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.
Jacek Kobus - [email protected]