如何在另一个中使用一个配置键


How do I use one config key in another?

在Laravel 4的级联配置文件中,我能够从另一个配置键引用一个配置密钥。例如,我喜欢将app.debug设置为true或false,然后我可以通过将相关设置设置为!Config::get('app.debug'),将错误报告切换到Sentry,与其他配置文件中的错误报告相反。

我知道这有点麻烦,因为大概能不能找到配置值取决于加载文件的顺序。但我每次都设法让它发挥作用。

我在拉拉威尔5号没有这样的运气。当我尝试在配置文件中执行Config::get(...)时,会出现"找不到类"错误。使用config(...)帮助程序不会产生任何错误,但不会检索值。

当然,约定是使用环境变量、.env文件和env(...)来获取值。这样,每个配置键都可以使用环境变量的值。这很好,也很有效,但我有一些在环境之间共享的值,我确实希望其中一些值致力于版本控制。

使用.env.example文件对我来说不是一个好的解决方案,因为如果值发生更改,我不想记住将值复制到每个环境的.env文件中。

如何以在环境之间共享、存在于版本控制中并且可以在多个配置文件中引用的方式存储一些配置值?

这是我的解决方案,它有效,但我对其他可能性感兴趣。

添加一个新的共享文件,签入VCS,称为.env.shared。其结构与CCD_ 10类似。编辑bootstrap/app.php以加载这些变量(除了.env):

// Load shared environment variables
$app->afterLoadingEnvironment(function () use ($app) {
    Dotenv::load($app->basePath(), '.env.shared');
});

我在实例化$app之后添加了这个。