Php Laravel:推进器的动态配置
我正在尝试在我的Laravel应用程序(SaaS)中对Pusher进行动态配置。 基本上,我想为不同的帐户存储不同的Pusher配置。并根据用户调用相应的配置 我尝试在运行时使用Php Laravel:推进器的动态配置,php,laravel,pusher,service-provider,broadcasting,Php,Laravel,Pusher,Service Provider,Broadcasting,我正在尝试在我的Laravel应用程序(SaaS)中对Pusher进行动态配置。 基本上,我想为不同的帐户存储不同的Pusher配置。并根据用户调用相应的配置 我尝试在运行时使用config()->set('services.pusher.xxx','yyyy')更改配置,但这在框架的任何级别都不起作用,在自定义ServiceProvider中是事件 我找到了Laravel的BroadcastManager,并试图覆盖createPusherDriver(),这样我就可以用用户的配置创建一个Pu
config()->set('services.pusher.xxx','yyyy')
更改配置,但这在框架的任何级别都不起作用,在自定义ServiceProvider中是事件
我找到了Laravel的BroadcastManager
,并试图覆盖createPusherDriver()
,这样我就可以用用户的配置创建一个PusherBroadcaster
的自定义实例,但我不知道该怎么做,也不知道该放在哪里
最好的做法/标准方法是什么?我在自己的一个项目中使用了类似的设置来设置自定义邮件配置: 注意:由于服务提供商在应用程序中的加载顺序不同,您的里程数可能会有所不同 创建一个服务提供者,如
app\Providers\ConfigProvider.php
公共函数启动()
{
$this->app->booted(函数(){
$shouldSetCustomConfig=true;
//从数据库中设置配置值。
如果($shouldSetCustomConfig){
配置([
'mail.host'=>Config::get('mail.host'),
'mail.port'=>Config::get('mail.port'),
]);
}
});
}
$this->app->booted()。这可能并不总是能正常工作,因为我看到过很多包也使用这个回调来做各种事情。在这种情况下,登记顺序很重要。请注意,不需要使用此回调。您可以直接调用
,它可以按预期工作配置(['key'=>'newval'])
- 上面的服务提供商应在为其设置配置的提供商之前加载。在上面的示例中,它将是
。这应该确保加载了正确的配置illumb\Mail\MailServiceProvider::class