我有一个提供者,并在其注册方法中定义了一个单例,
$this->app->singleton('my.custom.singleton', function ($app) {
$config_value = $app->make($this->config('key'));
return new MyClass($config_value);
});
如您所见,我得到一个配置值并将其作为参数放在类中。
在项目的另一个地方,我使用代码更改
config('key')
的值:Config:set('key',$my_changed_value);
然后调用
MyClass
方法,该方法使用将其发送到上述提供程序中的类的参数。但是
MyClass
不使用config('key')
的新值。我认为发生这种情况是因为单例已使用config的默认值进行了定义。我认为如果在分配新的config值后可以重新定义单例,那将是可以的。
还是我的问题有解决方案?我错了吗?如何使用
MyClass
中的新值?
最佳答案
只需为其分配null
,它将在下一次调用时从头开始创建
app()->instance(PaymentServiceContract::class, null);
关于laravel - 在Laravel 5中重新分配或刷新单例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50786558/