exan/eventer

Event emitting library

1.0.3 2023-05-10 16:59 UTC

This package is auto-updated.

Last update: 2024-04-23 19:06:20 UTC


README

Eventer Code Quality Assurance Eventer Unit Tests

Object oriented event emitter for PHP

For the majority of projects, you should probably use evenement/evenement. This may in some instances produce hard to follow code, in which case this approach may be more desirable.

Install

composer require exan/eventer

Example usage

class SomeEvent implements EventInterface {
    public function __construct($myFirstArg, $mySecondArg)
    {
    }

    public static function getEventName(): string
    {
        return 'Some Event';
    }

    public function filter(): bool
    {
        return true; // return false to skip execution
    }

    public function execute(): void
    {
        // Your event handling code
    }
}
$eventer = new Eventer();

$eventer->register(SomeClass::class); // Listen to events regularly
$eventer->registerOnce(SomeClass::class); // Listen to a single event
$eventer->before(SomeClass::class); // Listen to events regularly, executed before events registered with `register`
$eventer->beforeOnce(SomeClass::class); // Listen to a single event, executed before events registered with `register`

$eventer->emit('Some Event', ['my first arg', 'my second arg']);