了解事件监听器的构造函数

时间:2016-12-08 15:06:17

标签: php laravel

我通过在EventServiceProvider中注册该对来创建了一个Event \ Listener。 运行php artisan generate:event Laravel在那些受尊重的目录中创建了Event和Listener类。

我注意到如果要激活事件,则需要调用静态Event :: fire方法。

Event::fire( new SomeEventClass($variable));

但是我注意到,如果你想将$variable传递给听众。

您需要将$ variable声明为该类的公共属性,并在Associated Event类中创建一个构造函数,以便您可以在Listener类中使用它,稍后从{{1}传递$variable },否则$event->variable将无法在Listener类中工作。

$variable

因此,在这种情况下,重新澄清我的问题是什么是“在幕后”。

1 个答案:

答案 0 :(得分:1)

我不认为这里有很多内容,这是一个非常透明的过程。

当您触发事件时,Laravel将查找该事件的所有侦听器(通过EventServiceProvider类中的数组)并将事件类传递给它找到的每个侦听器并调用handle每个听众的方法。

事件类实际上只做一件事,它保留了最终使用的侦听器数据。我们将这些数据设置为public,因为这为侦听器创建了一种非常简单的方法,可以从事件类中提取所需的数据。