如何从 .env 文件中获取键的值?

Posted

技术标签:

【中文标题】如何从 .env 文件中获取键的值?【英文标题】:How to get the value of a key from the .env file? 【发布时间】:2021-03-29 02:53:23 【问题描述】:

.env文件中有键值设置;例如:APP_ENV=prod

例如如何获取键APP_ENV的值?

【问题讨论】:

可能重复:***.com/questions/52151783/… 如果您使用 Symfony 框架(而不是单个 Symfony 组件),那么通常inject the value into whatever class 需要它。乍一看语法有点奇怪:'%env(resolve:APP_ENV)%' 但你习惯了。如果 APP_ENV 是您想要的唯一值,那么它已经设置为一个参数,因此:'%kernel.environment%' 将起作用。使用 $_ENV 可以,但不建议在 Symfony 中使用。 @Cerad 表示法用于yaml 文件 @pheromix 当然是用于 yaml。相同的链接也显示 xml 和 php。我的观点是,如果您使用的是框架,那么您不应该直接使用 $_ENV 或 getenv 访问 env 变量。您应该在需要时注射它们。但这很好。我怀疑你会及时发现原因。 【参考方案1】:

您可以使用Dotenv() 类作为文档描述here 您可以像这样调用APP_ENV

use Symfony\Component\Dotenv\Dotenv;

$dotenv = new Dotenv();
$dotenv->load('..\.env');
$appEnv= $_ENV['APP_ENV'];

【讨论】:

【参考方案2】:

参见https://github.com/symfony/dotenv / https://symfony.com/doc/4.1/components/dotenv.html,它解析为$_ENV,PHP 有一个getenv 函数,您可以使用它来获取值。

use Symfony\Component\Dotenv\Dotenv;

$dotenv = new Dotenv();
$dotenv->load(__DIR__.'/.env');

$appEnv = getenv('APP_ENV');
// you can also use ``$_ENV`` or ``$_SERVER``

【讨论】:

以上是关于如何从 .env 文件中获取键的值?的主要内容,如果未能解决你的问题,请参考以下文章

解析 plist 文件并获取键的值

如何从 Javascript 中的对象列表中获取键的值?

如何从自定义模型对象数组中获取特定键的值

Symfony 4,从控制器获取 .env 参数,是不是可能以及如何?

如何在 JSON 对象中获取键的值 [重复]

Shell如何从.env文件设置环境变量