【发布时间】:2019-12-11 23:36:24
【问题描述】:
我已经在EventServiceProvider中添加了一个监听器
protected $subscribe = [
MyListener::class
];
侦听器 (MyListener) 有一个 subscribe 函数订阅侦听器想要侦听的事件 - 工作正常。
现在,我正在尝试添加一个检查来限制应该监听哪些事件。类似的东西
public function subscribe($events)
{
$config = ConfigService::getUserConfig();
if ($config->shouldSubscribe) {
$events->listen(.....);
}
}
但是,添加此逻辑后我遇到了一些问题。
似乎在运行composer install时会执行订阅方法。
这会导致问题,因为在运行 composer install 时没有活动会话 - 所以我遇到了一个 SQL 错误 - 它找不到要在哪个数据库中搜索配置 - 然后是这个错误
Script @php artisan package:discover 处理返回的自动加载转储后事件,错误代码为 1
如何有条件地订阅侦听器中的某些事件?
【问题讨论】:
标签: php laravel laravel-5.8 service-provider laravel-events