通过全局的event()方法来触发事件,event()方法的参数为事件实例:
namespace App\Controllers;
...
use App\Events\LoginEvent;
use Jenssegers\Agent\Agent;
class AuthControoler extends Controller
{
...
public function login(Request $request)
{
//登录实现
...
//登录成功,触发事件
event(new LoginEvent($this->guard()->user(), new Agent(), \Request::getClientIp(), time()));
...
}
}
队列化监听器
有时监听器会进行一些耗时操作,这时应该结合Laravel的队列系统将监听器进行队列化,前提是已经配置了队列并开启了队列处理器。
队列化非常简单,只需监听器实现ShouldQueue接口即可,即:
namespace App\Listeners;
...
use Illuminate\Contracts\Queue\ShouldQueue;
class LoginListener implements ShouldQueue
{
/**
* 失败重试次数
* @var int
*/
public $tries = 1;
...
}
总结
Laravel的事件系统实现起来还是非常优雅的,同一个事件可以很方便的添加各类监听器,且各个监听器之间互不干扰,解耦性非常强。加上队列系统,可以很方便的处理一些后续任务。
好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。
利用Homestead快速运行一个Laravel项目的方法详解这篇文章主要给大家介绍了关于利用Homestead如何快速运行一个Laravel项目的相关资料,文中通过示例代码介绍的非常详
Laravel Intervention/image图片处理扩展包的安装、使用与可能遇到的坑详解这篇文章主要给大家介绍了关于Laravel中Intervention/image图片处理扩展包的安装、使用与在使用可能遇到的坑的解决方法
Laravel下生成验证码的类这篇文章主要为大家详细介绍了Laravel下生成验证码的类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
详解php语言最牛掰的Laravel框架Laravel以其简洁、优雅的特性赢得了大家的广泛关注,无论是专家还是新手,在开发PHP项目的时候,都会第一时间的想
Laravel 批量更新多条数据的示例本篇文章主要介绍了Laravel 批量更新多条数据的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起
laravel5 使用try catch的实例详解这篇文章主要介绍了laravel5 使用try catch的相关知识,需要的朋友可以参考下