在Laravel 4的级联配置文件中,我能够从另一个配置文件中引用一个配置密钥。例如,我喜欢将app.debug
设置为true或false,然后通过将相关设置设置为!Config::get('app.debug')
,我可以将错误报告切换到Sentry,与其他配置文件中的错误报告相反。
我知道这有点毛茸茸,因为大概是否可以找到配置值取决于文件的加载顺序。但我每次都设法让它运转起来。
我在Laravel 5中没有运气。当我尝试在配置文件中执行Config::get(...)
时,我收到“找不到类”错误。使用config(...)
助手不会产生任何错误,但不会检索到这些值。
当然,约定是使用环境变量,.env
文件和env(...)
来获取值。这样,每个配置键都可以使用环境变量的值。这很好并且有效,但我有一些在环境之间共享的值,我确实希望将这些值中的一些提交给版本控制。
使用.env.example
文件对我来说不是一个好的解决方案,因为我不想记住将值复制到每个环境的.env
文件中,如果它们发生了变化。
如何以某种方式存储某些配置值,它们在环境之间共享,存在于版本控制中,并且可以在多个配置文件中引用?
答案 0 :(得分:0)
这是我的解决方案,有效,但我对其他可能性感兴趣。
添加一个新的共享文件,签入VCS,名为.env.shared
。它的结构就像.env
。修改bootstrap/app.php
以加载这些变量(除.env
之外):
// Load shared environment variables
$app->afterLoadingEnvironment(function () use ($app) {
Dotenv::load($app->basePath(), '.env.shared');
});
我在$app
实例化后立即添加了这个。