exan/eventer

事件触发库

1.0.3 2023-05-10 16:59 UTC

This package is auto-updated.

Last update: 2024-09-23 19:57:13 UTC


README

Eventer Code Quality Assurance Eventer Unit Tests

面向对象的 PHP 事件触发器

对于大多数项目,你可能应该使用 evenement/evenement。在某些情况下,这可能会产生难以理解的代码,在这种情况下,这种方法可能更受欢迎。

安装

composer require exan/eventer

示例用法

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']);