事件

优质
小牛编辑
128浏览
2023-12-01

简介

Lumen 事件提供了简单的侦听器实现,允许你订阅和监听事件,事件类通常被保存在 app/Events 目录下,而它们的侦听器被保存在 app/Listeners 目录下。

不同于 Laravel

通常,Lumen 中的事件方法恰好与 Laravel 全栈框架功能一致,所以,请阅读完整的 Laravel 文档 。Lumen 同样支持事件广播,它允许客户端的 JavaScript 监听服务端的事件。然而,这里还是有些差异值得讨论。

生成器

Lumen 中没有可以用来生成事件和监听器的命令,你可以通过简单复制 ExampleEvent 或者 ExampleListener 文件来定义你自己的事件和监听器,这两个示例文件提供了每个事件和监听器的基础类结构。

注册事件或监听器

像 Laravel 框架一样,Lumen 应用内置的 EventServiceProvider 提供了一个注册所有事件监听器的地方。 listen 属性是一个数组,它包含了所有的事件(键)和监听器(值)。所以,你可以根据应用程序的需要添加事件到这个数组:

/**
 * 应用程序的事件监听器映射。
 *
 * @var array
 */
protected $listen = [
    'App\Events\ExampleEvent' => [
        'App\Listeners\ExampleListener',
    ],
];

触发事件

你可以使用 event 帮助函数或者 Event 门面在 Lumen 应用程序中触发事件。同样,这些函数的行为与 Laravel 框架一致:

event(new ExampleEvent);

Event::dispatch(new ExampleEvent);