Symfony 4.3强制在开发环境中使用“产品”

时间:2019-09-30 09:26:40

标签: symfony

我有一个基于Symfony 4.3的应用程序。 它可以在本地计算机上按预期工作,并且正在加载.env.local配置文件。
它也可以在生产服务器上按预期方式工作,并在其中加载.env文件。

但是开发服务器上出了点问题。

开发服务器设置

我们将环境变量APP_ENV设置为值dev
贝娄是php bin/console about在开发环境中的输出:

-------------------- ---------------------------------
  Kernel
 -------------------- ---------------------------------
  Type                 App\Kernel
  Environment          dev
  Debug                true
  Charset              UTF-8
  Cache directory      ./var/cache/dev (1.3 MiB)
  Log directory        ./var/log (138 KiB)

如果我在phpinfo()文件的开头使用/public/index.php函数,则仅出现1次APP_ENV-它位于 Environment 部分下。

但是,如果我在加载phpinfo()之后使用config/bootstrap.php,则 PHP变量部分中不会再出现其他事件,它们都包含prod

$_SERVER['APP_ENV'] prod
$_ENV['APP_ENV']    prod

^这两个值不在/public/index.php文件的开头,因此看起来Symfony正在添加它们并将它们设置为错误的prod值。

.env.dev文件包含以下内容:

###> symfony/framework-bundle ###
APP_ENV=dev

,但似乎根本没有加载此文件,而已加载.env来代替它。

我进行了一些调试,看起来好像在config/bootstrap.php文件的这一行上加载了错误的env文件(并添加了phpinfo()中显示的其他变量):

// load all the .env files
(new Dotenv(false))->loadEnv(dirname(__DIR__).'/.env');

我想念什么吗?我认为symfony环境仅受APP_ENV环境变量控制。但是看来我错了吗?

编辑:只是为了澄清一下-关于开发,我的意思是远程开发服务器(应该改称为暂存),而不是本地主机。

0 个答案:

没有答案