mleko/event

v0.4 2017-03-20 18:44 UTC

This package is auto-updated.

Last update: 2024-08-29 04:55:38 UTC


README

Travis CI Scrutinizer Code Quality Code Coverage

这是一个小巧简单的事件总线库。

Narrator 允许组件之间进行通信,而无需组件相互显式依赖。

安装

使用 Composer

$ composer require narrator/narrator

基本用法

// Simple event object
class UserRegistered {
    private $userId;
    
    private $userName;
    // ...event data, constructor, getters
}
// Sample listener
class UserRegisteredListener implements Listener {

    public function handle($event, Meta $meta){
        // send email, update model, etc
    }
}

// create EventBus which will be responsible for managing events and listeners
$eventBus = new BasicEventBus(new NameBasedResolver(new ClassNameExtractor()));

// create listener instance
$listener = new UserRegisteredListener(...);
// and register it in bus
$eventBus->subscribe(UserRegistered::class, $listener);

// create event
$event = new UserRegistered(...);
// and `emit` it to listeners
$eventBus->emit($event);

测试

要运行单元测试,请使用 PHPUnit

$ ./vendor/bin/phpunit