neuron-php/events

事件机制。

0.6.1 2022-11-29 17:06 UTC

This package is auto-updated.

Last update: 2024-08-29 05:31:08 UTC


README

术语

事件

事件是表示系统内部特定活动发生的对象。

监听器

当特定事件被触发时,监听器执行操作。

广播器

广播器将事件广播到特定的域。通用广播器是最常见的,因为事件会立即广播。

通用

直接在内存中广播事件。

日志

将所有事件活动写入特定的日志目的地。对调试很有用。

发射器

发射器负责将事件广播到所有已注册的广播器。使用发射器的 addListener 方法将监听器添加到所有已注册的广播器。

入门指南

创建事件

class UserLoggedIn implements IEvent
{
    public int $UserId;

    public function __construct( int $userid )
    {
        $this->UserId = $userid;
    }
}

创建一个或多个监听器

class UpdateAuditLog implements IListener
{
    public function event( $Event )
    {
    }
}

class EmailUser implements IListener
{
    public function event( $Event )
    {
    }
}

注册广播器

$Emitter     = new Emitter();
$Broadcaster = new Generic();

$Emitter->registerBroadcaster( $Broadcaster );

添加监听器

$Broadcaster->addListener( UserLoggedIn::class, new UpdateAuditLog() );
$Broadcaster->addListener( UserLoggedIn::class, new EmailUser() );

发射事件

$Emitter->emit( new UserLoggedIn( $SomeUserId ) );

事件将被广播到所有已注册的监听器。每个监听器将被调用,并传递有关已发射事件的信息。