多语言展示
当前在线:905今日阅读:176今日分享:34

如何在laravel 中使用事件系统

Laravel 的事件提供了一个简单的观察者实现,能够订阅和监听应用中发生的各种事件。事件类通常存放在 app/Events 目录下,而这些事件类的监听器则存放在 app/Listeners 目录下。
工具/原料
1

需要先明白 队列 怎么用的,看第五步连接里的另一篇教程

2

redies

方法/步骤
1

注册事件和监听器在EventServiceProvider 中添加 protected $listen = [        'App\Events\OrderShipped' => [  'App\Listeners\SendShipmentNotification',    ],];

2

生成事件 & 监听器php artisan event:generate

4

定义监听器好像是执行php artisan event:generate,这条命令的时候,自动创建了一个SendShipmentNotification.php 在App\Listeners的目录下,都已经创建好了,不用做什么操作。 停止事件传播有时,你可以通过在监听器的 handle 方法中返回 false 来阻止事件被其它的监听器获取。

5

事件监听器队列队列的详细用法请查看  队列的初识的经验。要指定监听器启动队列,你可以在监听器类中增加 ShouldQueue 接口。由 Artisan 命令 event:generate 生成的监听器已经将此接口导入到当前命名空间中,因此你可以直接使用:

6

还可以设置 处理失败任务手动访问队列,处理失败任务等方法,在控制器中引入事件use App\Events\OrderShipped;然后在控制器中分发事件就可以了事件实例传递给辅助函数 event 。该辅助函数将会把事件分发到所有该事件相应的已经注册了的监听器上。 event 辅助函数可以全局使用,你可以在应用中的任何位置进行调用 public function ship($orderId)    {        $order = Order::findOrFail($orderId);        // 中间写订单发货逻辑 ...        event(new OrderShipped($order));    }

7

还可以添加 编写事件订阅者

推荐信息