介绍

Lumen的事件提供了一个简单的观察者实现,使您可以订阅和侦听应用程序中的事件。事件类通常存储在目录中,而其侦听器存储在中。app/Events``app/Listeners

与Laravel的区别

通常,Lumen中的事件的功能与完整的Laravel框架中的事件完全相同,因此请查看完整的Laravel文档。Lumen甚至支持事件广播,它使您可以在客户端JavaScript中侦听服务器端事件。但是,有一些小的差异值得讨论。

发电机

在Lumen中,没有生成器命令可以为您生成事件和侦听器,因此您只需复制ExampleEventExampleListener类即可定义自己的事件和侦听器。这些示例类提供了每个事件和侦听器的基本结构。

注册事件/监听器

与完整的Laravel框架一样,EventServiceProviderLumen应用程序随附的框架为注册所有事件侦听器提供了方便的位置。该listen属性包含所有事件(键)及其侦听器(值)的数组。当然,您可以根据应用程序的需要向该数组添加尽可能多的事件:

  1. /**
  2. * The event listener mappings for the application.
  3. *
  4. * @var array
  5. */
  6. protected $listen = [
  7. 'App\Events\ExampleEvent' => [
  8. 'App\Listeners\ExampleListener',
  9. ],
  10. ];

射击事件

您可以使用event辅助函数或Event外观在整个Lumen应用程序中触发事件。同样,这些功能的行为完全等同于其完整的Laravel框架:

  1. event(new ExampleEvent);
  2. Event::dispatch(new ExampleEvent);