php - Laravel 框架中的 DotEnv 模块是否会覆盖我系统中现有的 ENV var?

标签 php laravel environment-variables

我想确定是否在我的系统上给定了一个已定义的 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/

相关文章:

javascript - AJAX 从保管箱到另一个保管箱更改值

php - 使用 PHPMailer 发送纯文本电子邮件

php - Laravel 5 验证唯一(数据库)仅适用于相同的外键

php - 在 Laravel 中按照特定参数对数组进行排序

linux - 如何在 Bash 中取消设置以特定前缀开头的所有变量?

haskell - 如何以跨平台的方式设置环境变量?

php - Drupal 8 自定义 block (模块)创建 Twig 模板文件

php - mysql中的英国日期格式

laravel - Angular2 标题

cmd - java 命令有效但 javac 无效?