• 技术文章 >php框架 >Laravel

    实例详解Laravel事件监听

    长期闲置长期闲置2022-04-12 20:48:42转载740
    本篇文章给大家带来了关于laravel的相关知识,其中主要介绍了关于事件监听的相关问题,实现事件监听的步骤是创建事件、创建监听、绑定事件与监听然后触发事件,下面根据示例一起来看一下,希望对大家有帮助。

    【相关推荐:laravel视频教程

    Laravel Event & Listener 事件监听机制,让开发者不光是可以把代码组织得更加有条理的手段,而且也是对现实社会运行规则的高度抽象化映射,我们的现实社会本来也是这样,我们监控事物的变化,并对变化做出反应,让事物的发展按照我们的预期发展。当现实映射到代码逻辑中时,事件及其处理逻辑通常是分开的,毕竟不是所有的事件我们都需要马上进行响应处理。结合队列,我们可以把事件的监听和处理的工作流程做到更加完美。

    使用案例:

    监听log日志文件大小变化
    用户登录:记录用户登录次数、记录访问相关信息

    实现事件监听步骤:

    1、创建事件:event
    2、创建监听:listener
    3、绑定事件与监听
    4、触发事件

    一、手动创建事件与监听

    1、创建登录事件:event
    app/Events/UserLogin.php

    php artisan make:event UserLogin//获取用户信息实例
     public function __construct(User $user){
        $this->user = $user;}

    2、创建用户登录邮件发送监听,同时绑定UserLogin登录事件:listener
    app/Listeners/EmailAdminUserLogin.php

    php artisan make:listener EmailAdminUserLogin --event=UserLogin //日志打印登录用户信息public function handle(UserLogin $event)
        {//        dd($event);
            //日志打印登录用户信息
            Log::info($event->user->name . '已经登录');
        }

    在这里插入图片描述

    3、注册事件与监听绑定关系
    一个事件可以对应多个监听
    app/Providers/EventServiceProvider.php

    protected $listen = [
        'App\Events\UserLogin' => [
            'App\Listeners\EmailAdminUserLogin',
        ],];

    4、在用户登录时候触发事件
    app/Http/Controllers/Auth/LoginController.php

    //覆写AuthenticatesUsers类的authenticated方法protected function authenticated(Request $request, $user){
        //触发事件
        event(new UserLogin($user));}

    二、快速生成事件与监听

    这里会根据app/Providers/EventServiceProvider.php中属性listen生成对应的事件与监听

    php artisan event:generate

    【相关推荐:laravel视频教程

    以上就是实例详解Laravel事件监听的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:CSDN,如有侵犯,请联系admin@php.cn删除
    专题推荐:Laravel
    上一篇:详细了解Laravel Swagger的使用 下一篇:Laravel框架有mvc模式吗
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• 值得掌握一下支持Laravel 9的Aliyun OSS Storage扩展• Laravel8中怎么优化数据库查询?18 个优化建议分享• laravel的核心是什么• laravel为什么用队列• laravel中ioc控制反转是什么
    1/1

    PHP中文网