像这样的场景怎么优化,是否能用 laravel 的事件?
1. 当前使用的 Laravel 版本?
laravel 5.7
2. 问题描述?
项目是一个问答系统。
从发布到完成大概有十几个事件,每个事件有创建动态、模板通知、公众号通知、websocket推送、记录事件用于监控、以及其他各种事情, 其中的 n 种。
现在几乎都是糅合在方法代码中,只有支付后逻辑分离了出来,分发到了 job
中。
这部分代码量尽管在调用上已经尽量简化了,但是显的较臃肿。
后续操作是次要的,出错也问题不大,但在方法中代码报错会影响正常业务。
分散,如果有改动的话,都得到所有方法里改。
我也看了 laravel
文档中关于事件部分,思路不太清晰不敢尝试,向大家请教下思路。
class EventServiceProvider extends ServiceProvider
{
protected $listen = [
'App\Events\Published' => [
'App\Listeners\Dynamic',
..
],
'App\Events\Replied' => [
'App\Listeners\Dynamic',
..
],
];
}
php artisan event:generate
namespace App\Listeners;
use App\Events\Replied;
..
class Dynamic
{
public function __construct(){}
public function handle(Replied $event)
{
//
}
}
Dynamic
怎么监听 Published
Replied
,总不能每种事件创建一个监听者吧 PublishedDynamic
RepliedDynamic
..
推荐文章: