0
点赞
收藏
分享

微信扫一扫

SmartNews 基于 Flink 的 Iceberg 实时数据湖实践

yongxinz 2023-09-22 阅读 49
phplaravel

一,绑定事件与监听器

app\Providers下的EventServiceProvider.php中添加我们定义的事件与监听器

    protected $listen = [
Registered::class => [
SendEmailVerificationNotification::class,
],
'App\ebvent\RegisterMessage'=>[//事件
'App\listeners\SendMessage'//监听器
],
];

二,生成事件 & 监听器

使用 event:generate 命令即可。这个命令会生成在 EventServiceProvider 中列出的所有事件和监听器。当然,已经存在的事件和监听器将保持不变:

php artisan event:generate

三,编写业务逻辑

在App\ebvent\目录下,打开你新创建的事件文件 RegisterMessage.php
    public $teacher;
/**
* Create a new event instance.
*
* @return void
*/

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

 在App\listeners\目录下,打开你新创建的监听器文件 SendMessage.php

    /**
* Handle the event.
*
* @param \App\ebvent\RegisterMessage $event
* @return void
*/

public function handle(RegisterMessage $event)
{
Cache::add('name','张三');
//
}

四,在路由中使用事件

Route::get('listeners', function () {
$user = ['name' => 'peter'];
event(new \App\Event\RegisterMessage($user));
return 'ok';
});

当我们访问/listeners路由时,会把$user变量传给事件,会执行构造方法,同时监听器也会执行handle方法

storage目录下可以看到两个缓存文件,说明事件和监听器起作用了

实例:

举报

相关推荐

0 条评论