1:注册事件和监听器
打开 App\Providers\EventServiceProvider文件,在$listen数组中注册事件和监听器
protected $listen = [
'App\Events\TestEvent' => [
'App\Listeners\TestListener1',
'App\Listeners\TestListener2'
]
];
执行自动生成文件命令 php artisan event:generate
执行成功后会生成 事件文件和监听器文件
事件文件: App\Events\TestEvent.php
监听器文件: App\Listeners\TestListener1.php
事件文件
namespace App\Events;
class TestEvent {
public $params;
public function __construct($params)
{
// 获取分发事件时传递的参数
$this->params = $params;
}
}
监听器文件
namespace App\Listeners;
class TestListener1 {
/**
* Create the event listener.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Handle the event.
* 会自动执行本方法
* @param TestEvent $event
* @return void
*/
public function handle(TestEvent $event)
{
// 可通过注册的$event属性获取事件传递的参数
// 在此处编写业务代码
dump($event);
}
}
分发事件, 可在控制器方法或者路由中
/**
* 测试事件
*/
public function event(){
// 分发事件
event(new TestEvent(['name' => '张三', 'age' => 18]));
return 'event';
}
手动创建 事件文件 命令
php artisan make:event TestEvent2
手动创建监听器文件
php artisan make:listener TestListener3
手动创建文件成功后需在 App\Providers\EventServiceProvider文件的 $listen数组中注册事件监听