laravel5.1 事件监听的创建和使用

日常项目中,需要记录一些操作记录,用以数据分析及安全防护,需要在项目中用到事件监听,以便我们更好的完成开发工作(好记性不如烂笔头)

author:he
qq:760863706
laravel:laravel 5.1.*
date:2018-08-20

创建事件监听首先在App\Providers\EventServiceProvider中注册事件与监听的关系

protected $listen = [   
    //   
    'App\Events\LoginInfo' => [
            'App\Listeners\LoginInfoRecord',
     ],
 ];

然后在项目的根目录执行命令

php artisan event:generate

执行成功后,生成 事件类App\Events\LoginInfo.php 和 监听类App\Listeners\LoginInfoRecord.php

定义事件类:

public $data;

public function __construct($data)
{
    //
    $this->data = $data;
}

定义监听类:

public function handle(LoginInfo $event)
 {
     //
     $data = $event->data;
     //测试数据写入根目录test.txt文件中
     file_put_contents("../test.txt", json_encode($data).PHP_EOL,FILE_APPEND);
 }

添加事件触发:
根据需要,在业务控制器的类中引入 App\Events\LoginInfo,在对应的方法login()中添加触发条件

use App\Events\LoginInfo;

public function login()
  {
      //登录逻辑       
      $data = [
          'account' =>'158xxxx6666',
          'login_time' => date('Y-m-d H:i:s', time()),
      ];
      event(new LoginInfo($data)); //事件触发
  }

到这里就完成了事件监听的全部过程,我们在根目录test.txt文件中发现所写入的记录信息,可以用来做后续分析

{"account":"158xxxx6666","login_time":"2018-08-20 15:50:56"}
{"account":"158xxxx6666","login_time":"2018-08-20 15:57:35"}
{"account":"158xxxx6666","login_time":"2018-08-20 15:57:36"}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值