.env
运行 Symfony 4 命令时会解析文件(如果 dotenv 可用)。
这在开发时工作正常,而且,我想测试我的代码(所以另一个环境),因此我需要加载另一个.env
file.
我喜欢 Docker 运行容器的方式:
docker run -e MYVAR1 --env MYVAR2=foo --env-file ./env.list ubuntu bash
所以我希望用 Symfony 实现同样的目标:
php bin/console --env-file ./.env.test
现在,我正在这样做:
export $(grep -v '^#' .env.test | xargs) && php bin/console
我选择编辑bin/console
直接归档,方便不同.env
文件,这不是问题,因为它是开发人员可以控制的文件。我将相关部分更新为;
if (!isset($_SERVER['APP_ENV'])) {
if (!class_exists(Dotenv::class)) {
throw new \RuntimeException('APP_ENV environment variable is not defined. You need to define environment variables for configuration or add "symfony/dotenv" as a Composer dependency to load variables from a .env file.');
}
}
$input = new ArgvInput();
$env = $input->getParameterOption(['--env', '-e'], $_SERVER['APP_ENV'] ?? 'dev', true);
switch ($env) {
case 'test':
(new Dotenv())->load(__DIR__.'/../.env.test');
break;
case 'dev':
default:
(new Dotenv())->load(__DIR__.'/../.env');
break;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)