事件
事件
简介
Lumen 事件提供了简单的侦听器实现,允许你订阅和监听事件,事件类通常被保存在 app/Events
目录下,而它们的侦听器被保存在 app/Listeners
目录下。
不同于 Laravel
Lumen 和 Laravel 事件除了接下来会列出来的不同点以外,功能上没有什么区别,所以更多关于 Lumen 事件的使用,请参阅 Laravel 文档 。
生成器
Lumen 中没有可用来生成事件监听器的命令,你可以复制 ExampleEvent
或者 ExampleListener
文件,这两个示例文件提供了基础的类结构,你可以作为参考。
注册事件或侦听器
你可以在 EventServiceProvider
注册所有的事件侦听器。listen
属性是一个数组,包含所有事件(键)以及事件对应的侦听器(值),你也可以根据需求增加事件到这个数组,例如:让我们增加 PodcastWasPurchased
事件:
/**
* 应用程序的事件侦听器映射。
*
* @var array
*/
protected $listen = [
'App\Events\ExampleEvent' => [
'App\Listeners\ExampleListener',
],
];
触发事件
如果要触发一个事件,你可以使用 Event
facade 来发送一个事件的实例到 fire
方法。fire
方法将会发送事件到所有已经注册的侦听器上。或者可以使用 全局 event
辅助函数来触发事件:
event(new ExampleEvent);
Event::fire(new ExampleEvent);