介绍
Lumen的事件提供了一个简单的观察者实现,使您可以订阅和侦听应用程序中的事件。事件类通常存储在目录中,而其侦听器存储在中。app/Events``app/Listeners
与Laravel的区别
通常,Lumen中的事件的功能与完整的Laravel框架中的事件完全相同,因此请查看完整的Laravel文档。Lumen甚至支持事件广播,它使您可以在客户端JavaScript中侦听服务器端事件。但是,有一些小的差异值得讨论。
发电机
在Lumen中,没有生成器命令可以为您生成事件和侦听器,因此您只需复制ExampleEvent
或ExampleListener
类即可定义自己的事件和侦听器。这些示例类提供了每个事件和侦听器的基本结构。
注册事件/监听器
与完整的Laravel框架一样,EventServiceProvider
Lumen应用程序随附的框架为注册所有事件侦听器提供了方便的位置。该listen
属性包含所有事件(键)及其侦听器(值)的数组。当然,您可以根据应用程序的需要向该数组添加尽可能多的事件:
/**
* The event listener mappings for the application.
*
* @var array
*/
protected $listen = [
'App\Events\ExampleEvent' => [
'App\Listeners\ExampleListener',
],
];
射击事件
您可以使用event
辅助函数或Event
外观在整个Lumen应用程序中触发事件。同样,这些功能的行为完全等同于其完整的Laravel框架:
event(new ExampleEvent);
Event::dispatch(new ExampleEvent);