在`laravel`中使用`event事件`
首先什么是事件,事件是一种常见的观察者模式的应用。
简单的来说,就是当什么什么的时候就干什么。
当 (event),干 (listener)放置 event 和 listener 文件的位置分别是:
`app/Events`
`app/Listeners`
对于产品经理来说,事件主要用来规范你的业务逻辑,使支线逻辑与主线逻辑独立分拆。对于程序员来说,事件可以让 Controller 变得非常简洁,解耦,可维护。
如何使用?
首先 ` php artisan make:event UserSignup`
然后在`App\Providers\EventServiceProvider.php`中编辑
>protected $listen = [
Registered::class => [
SendEmailVerificationNotification::class,
],
\\App\\Events\\UserSignUp::class => [
\App\\Listeners\\UserSignupListener::class
],
];
接着执行`php artisan event:generate`
这时会在App\Events和App\Listeners中生成两个文件
分别为`UserSignup.php`
>user = $user;
}
public function broadcastOn()
{
return new PrivateChannel('channel-name');
}
}
和`UserSignupListener.php`
>user->email.' sign up');
}
}
接着在`route`中调用即可
>Route::get('/signup/{id}', function($id){
$user = \\App\\User::find($id);
event(new \\App\\Events\\UserSignUp($user));
});