根据其他服务配置服务

时间:2015-09-05 08:46:41

标签: laravel service laravel-5 inversion-of-control

我有一个名为setting的服务,可以从某个地方获取使用者的偏好。我需要在配置其他服务时使用它。例如,我需要获取用户的电子邮件地址电子邮件主机。

'host' => app('setting')['email']['host']),文件中使用config/mail.php, 不起作用。似乎app()服务在该阶段无法访问。 这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

您可以在服务提供商的运行时更改配置。

让我们使用Laravel附带的app/Providers/AppServiceProvider。因此,在boot()方法中,您可以对配置进行任何更改,如下所示:

public function boot()
{
    $this->app->make('config')->set('whatever.config', 'This has changed');
}