Laravel 的事件订阅者
Posted 小伍
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel 的事件订阅者相关的知识,希望对你有一定的参考价值。
事件订阅者
在 Laravel 的事件系统 中说到,一个事件可以对应多个监听器,但一个监听器只监听一个事件。
那么如果想在一个类中订阅多个事件,例如在订单发货、签收、退货事件发生时,都需要进行“发短信操作”,该如何处理呢,这时候可以使用事件订阅者。
事件订阅者可以在类内部订阅多个事件,即在单个类中定义多个事件处理器。
编写事件订阅者
<?php
namespace App\\Listeners;
use Illuminate\\Auth\\Events\\Login;
use Illuminate\\Auth\\Events\\Logout;
class UserEventSubscriber
{
/**
* 处理用户登录事件
*/
public function handleUserLogin($event) {}
/**
* 处理用户注销事件
*/
public function handleUserLogout($event) {}
/**
* 为事件订阅者注册监听器
*
* @return array
*/
public function subscribe()
{
return [
Login::class => [UserEventSubscriber::class, \'handleUserLogin\'],
Logout::class => [UserEventSubscriber::class, \'handleUserLogout\'],
];
}
}
注册事件订阅者
<?php
namespace App\\Providers;
use Illuminate\\Foundation\\Support\\Providers\\EventServiceProvider as ServiceProvider;
class EventServiceProvider extends ServiceProvider
{
/**
* 应用的事件监听器映射
*/
protected $listen = [
//
];
/**
* 被注册的订阅者类
*/
protected $subscribe = [
\'App\\Listeners\\UserEventSubscriber\',
];
}
以上是关于Laravel 的事件订阅者的主要内容,如果未能解决你的问题,请参考以下文章
laravel-echo-server 用户未加入,未订阅套接字服务器