简介
Laravel事件提供了简单的观察者模式实现,允许你订阅和监听应用中的事件。事件类通常存放在app/Events目录,监听器存放在app/Listeners。
注意区别旧的laravel版本。下图为laravel5.1的升级说明。
注册事件和监听器
我们可以在app/Providers/目录下的EventServiceProvider中注册事件和监听器映射关系,其中的listen属性包含了事件(键)和对应监听器(值)数组。如果应用需要,你可以添加多个事件到该数组。例如,让我们添加StockChangeEvent事件和StockChangeListener:
/**
* 事件监听器映射
*
* @var array
*/
protected $listen = [
'Shark\Events\Product\StockChangeEvent' => [
'Shark\Listeners\Product\StockChangeListener',
],
'Shark\Events\Product\ProductAddEvent' => [
'Shark\Listeners\Product\ProductListener',
'Shark\Listeners\Product\ProductAddListener',
],
];
当然你也可以一个事件绑定多个监听器。
你也可以使用下面的方法注册事件和监听器:
Event::listen('Shark\Events\Product\StockChangeEvent', 'Shark\Listeners\Product\StockChangeListener');
你也可以使用下面的方法解除事件监听器的绑定
\Event::forget('Shark\Events\Product\StockChangeEvent');
定义事件和监听器
你可以使用artisan make:event 和artisan make:listener生成对应的文件,你也可以使用artisan event:generate 前提是你先在EventServiceProvider中注册好事件。
<?php
namespace Shark\Ev