phpextra/event-manager

Event manager based on reflection, annotations and priority queue

5.0.0 2019-03-26 15:51 UTC

This package is not auto-updated.

Last update: 2024-04-13 13:26:01 UTC


README

Latest Stable Version Total Downloads License Build Status Scrutinizer Code Quality Code Coverage

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