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

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

例如如何获取键APP_ENV的值?

【问题讨论】:

  • 如果您使用 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 变量。您应该在需要时注射它们。但这很好。我怀疑你会及时发现原因。

标签: php symfony symfony4 symfony-4.4


【解决方案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``
    

    【讨论】:

      猜你喜欢
      • 2022-12-26
      • 2011-10-10
      • 2022-10-09
      • 1970-01-01
      • 1970-01-01
      • 2020-02-18
      • 2018-02-15
      • 2021-11-07
      • 2016-01-27
      相关资源
      最近更新 更多