1、简介
Lumen
事件提供了简单的观察者模式实现,允许你订阅和监听应用中的事件。事件类通常存放在 app/Events
目录,监听器存放在 app/Listeners
。
2、和Laravel的区别
通常,Lumen中的事件函数和Laravel几乎一样,所以关于其使用可参考Laravel事件文档。Lumen也支持事件广播,从而允许你在客户端
生成器
在Lumen中,没有提供生成事件和监听器类的Artisan命令,所以你需要拷贝 ExampleEvent
或 ExampleListener
来自定义事件类和监听器类。
注册事件/监听器
和Laravel框架一样,Lumen内置 EventServiceProvider
用于注册所有事件监听器。 listen
属性是一个包含了所有事件(keys)及其对应监听器(values)的数组,你可以将应用的所有事件都添加到这个数组:
/** * 应用的事件监听器映射关系 * * @var array */ protected $listen = [ 'App\Events\ExampleEvent' => [ 'App\Listeners\ExampleListener', ], ];
触发事件
你可以在应用中使用辅助函数 event
或 Event
门面来触发事件,这些方法调用和Laravel一样:
event(new ExampleEvent); Event::fire(new ExampleEvent);