neuron-php / events
事件机制。
0.6.1
2022-11-29 17:06 UTC
Requires
- ext-curl: *
- ext-json: *
- neuron-php/logging: 0.6.*
- neuron-php/patterns: 0.6.*
Requires (Dev)
- phpunit/phpunit: 9.*
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 ) );
事件将被广播到所有已注册的监听器。每个监听器将被调用,并传递有关已发射事件的信息。