我的laravel 4项目设置了多个环境。
环境设置如下:开发称为“开发”,生产称为“生产”。 在我的app / config文件夹中,我有两个额外的文件夹。每个环境名称一个。
见截图:
在这些文件夹中,我有针对database.php和app.php的单独配置文件。 这些正在按预期工作。 Laravel在本地运行时使用我的本地数据库配置,在实时运行时使用生产。
现在,我添加了一个需要配置文件的新软件包。它位于/app/config/packages/greggilbert/config.php
。
我需要能够像设置数据库一样设置不同的配置文件。所以,我假设在/development
或/production
中创建相同的文件结构会起作用,但似乎并非如此。
这是一个新截图:
答案 0 :(得分:1)
与软件包相关的特定于环境的配置文件必须放在以环境命名的子目录中的软件包目录中。所以在你的情况下,这将是
app
- config
- packages
- greggilbert
- recaptcha
- development
- config.php
- production
- config.php
但在某些情况下,它会变得非常丑陋和麻烦。这可以通过应用程序根目录中的enviroment files以更清晰,更优雅的方式解决(在我看来):
<强> /。env.development.php 强>
<?php
return [
// any configuration settings for your local environment
'RECAPTCHA_TEMPLATE' => 'customCaptcha',
'RECAPTCHA_LANGUAGE' => 'en',
];
这样,您可以保留包目录:
app
- config
- packages
- greggilbert
- recaptcha
- config.php
Laravel将根据环境加载环境文件,并通过getenv()
使环境变量全局可用。所以现在你可以从config.php获取getenv('RECAPTCHA_TEMPLATE')
的当前环境的指定模板。