我对事件和监听器之间的区别有点困惑。
我了解了如何在 Events
下创建事件然后注册它们并在 Handlers\Events
中实现处理程序。所以这里我有事件和事件的处理。
我在Providers\EventServiceProvider.php
中定义它们后它们就起作用了
protected $listen = [
UserHasSignedUp::class => [
SendWelcomeEmail::class,
SendAdminEmail::class
]
];
那么什么是监听器?
对我来说,它们看起来与事件处理程序完全相同?
最佳答案
在您的示例中,UserHasSignedUp
是一个Event
。 SendWelcomeEmail
和 SendAdminEmail
是两个“等待”事件 UserHasSignedUp 被触发的监听器,它们应该在每个监听器的 handle
方法中实现所需的业务逻辑一个。
super 简单的例子:
UserController 中的某处
Event::fire(new UserHasSignedUp($user)); //UserHasSignedUp is the event being fired
SendWelcomeEmail 类
class SendWelcomeEmail //this is the listener class
{
public function handle(UserHasSignedUp $event) //this is the "handler method"
{
//send an email
}
}
如您所见,每个事件可以有多个监听器,但一个监听器不能监听多个事件。 如果你想让一个类监听很多事件,你应该看看Event Subscribers
希望有帮助。
关于Laravel 5 - 事件处理程序和监听器之间的混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30336337/