📜  Laravel-事件处理

📅  最后修改于: 2020-10-23 08:07:46             🧑  作者: Mango


事件提供了一种简单的观察器实现,该实现允许用户订阅和收听Web应用程序中触发的各种事件。 Laravel中的所有事件类都存储在app / Events文件夹中,而侦听器则存储在app / Listeners文件夹中。

下面显示了用于在Web应用程序中生成事件和侦听器的artisan命令-

php artisan event:generate

该命令生成事件和侦听器到相应的文件夹,如上所述。

事件产生器

事件和侦听器是解耦Web应用程序的一种好方法,因为一个事件可以有多个相互独立的侦听器。 artisan命令创建的事件文件夹包括以下两个文件:event.php和SomeEvent.php。它们显示在这里-

Event.php

如上所述, event.php包含Event类的基本定义,并调用命名空间App \ Events 。请注意,用户定义或自定义事件是在此文件中创建的。

SomeEvent.php

请注意,此文件使用序列化在Web应用程序中广播事件,并且在此文件中还初始化了必要的参数。

例如,如果我们需要在构造函数中初始化order变量以注册事件,则可以通过以下方式进行操作-

public function __construct(Order $order) {
   $this->order = $order;
}

听众

侦听器处理正在注册的事件中提到的所有活动。工匠命令事件:生成创建的应用程序/听众目录中的所有听众。 Listeners文件夹包含一个EventListener.php文件,其中包含处理侦听器所需的所有方法。

EventListener.php

如代码中所述,它包括用于管理各种事件的句柄函数。我们可以针对单个事件创建各种独立的侦听器。