如何从 .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 文件中获取键的值?的主要内容,如果未能解决你的问题,请参考以下文章