我想确定是否在我的系统上给定了一个已定义的 ENV 变量:
例如
$export TEST_VAR=hello
然后在 .env 文件中安装我的 laravel 应用程序
TEST_VAR=goodbye
如果我尝试打印,那么预期的行为会是什么
<?php echo $_ENV['TEST_VAR']
我进行了一些测试,似乎 .env 文件定义不会覆盖系统定义的 ENV var。但我不确定是否会一直这样。
我看到了: https://github.com/vlucas/phpdotenv
关于不变性的段落:
“默认情况下,Dotenv 不会覆盖已在环境中设置的现有环境变量。
如果你想让Dotenv覆盖现有的环境变量,使用重载而不是加载"
到目前为止还没有找到,Laravel 框架究竟在哪里调用 DOtEnv 包来加载/重载 env var....
最佳答案
简而言之,“不,默认情况下它不会重载/覆盖您现有的 ENV 变量”。默认情况下,immutable 设置为 false。
但是,如果您想覆盖现有的 ENV 变量,here is the possible workaround .
关于php - Laravel 框架中的 DotEnv 模块是否会覆盖我系统中现有的 ENV var?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43089519/