【发布时间】:2017-03-20 15:52:19
【问题描述】:
我遇到了一个问题,即我的 Symfony 应用程序的构建过程失败,正如许多不同的论坛(最近没有)所解释的那样。例如:
当使用 --no-dev 进行作曲家安装时,仅生产包 已安装(应该如此)。然而,当作曲家启动 symfony 脚本它们在开发模式下启动并因此启动 当 AppKernel.php 找不到所需的包时抛出错误 发展。这些脚本也应该在生产模式下执行!
上述 Github 问题已关闭,因为它显然可以通过将 SYMFONY_ENV 环境变量设置为您选择的环境来解决:export SYMFONY_ENV=prod。
我已经这样做了,调用printenv 可以正确打印变量。我什至可以手动调用 Symfony 控制台php bin/console。它将在prod 环境中启动。
成功了吗?看似,但没有......调用composer install 仍然会强制所有脚本在dev 环境中启动。什么给了?
【问题讨论】:
-
你试过
composer install --no-dev --env=prod吗? -
@LBA
--env不是作曲家选项 -
愚蠢的我。作曲家脚本的哪一部分失败了?
-
脚本并没有真正失败,但是 composer.json 中嵌入的 Symfony 控制台脚本在 dev 中启动,从而对下游造成了各种破坏。但这只是结果,而不是根本原因。一个例子是 Symfony 的缓存清除脚本;通过在作曲家中省略 --no-dev 脚本将执行,但它会清除 dev 缓存,而不是我预期的 prod。
标签: symfony composer-php environment-variables symfony-console