【问题标题】:Why laravel logging entire env file?为什么 laravel 记录整个 env 文件?
【发布时间】:2016-05-05 14:36:54
【问题描述】:

我注意到,当我尝试记录其他不相关的内容时,Laravel (5.1) 正在记录整个 .env 文件。

这是一个例子:

[2016-05-05 14:26:58] APP_ENV=local
APP_DEBUG=true
APP_URL=dev.mywebsite
APP_KEY=123321123123123123123123

DB_HOST=localhost
DB_DATABASE=mywebsite
DB_USERNAME=root
DB_PASSWORD=....DEBUG: teste at  on line . Data: []  

应该是:

[2016-05-05 14:26:58] DEBUG: teste at  on line . Data: []

我猜这是在我更改 env 文件以根据我的主机运行时开始的。这是我改变的:

- ./bootstrap
--- environment.php
- ./env
--- ./env/.development.env
--- ./env/.production.env

...这就是我在 environment.php

所拥有的
$env = $app->detectEnvironment(function() {

  $dir = __DIR__.'/../env/';

  if(!isset($_SERVER['HTTP_HOST'])) {
    return getenv('APP_ENV');
  }

  switch($_SERVER['HTTP_HOST']) {
    case 'mywebsite.herokuapp.com':
    $dotenv = '.production.env';
    $getenv = 'production';
    break;

    default:
    $dotenv = '.development.env';
    $getenv = getenv('APP_ENV');
    break;
  }

  $content = trim(file_get_contents($dir . $dotenv));

  putenv('APP_ENV='.$content);
  Dotenv::load($dir, $dotenv);

  return $getenv;

});

它正在工作的 env 文件,但我不明白为什么文件的内容会打印在日志文件中。

【问题讨论】:

  • 您应该将此作为答案并将问题标记为已回答。

标签: php laravel environment-variables


【解决方案1】:

没关系,问题是如果我使用 Dotenv,我不需要使用 putenv

所以代码是:

$env = $app->detectEnvironment(function() {

  $dir = __DIR__.'/../env/';
  $host = (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : 'local');

  switch($host) {
    case 'mywebsite.herokuapp.com':
    $dotenv = '.production.env';
    break;

    default:
    $dotenv = '.local.env';
    break;
  }

  Dotenv::load($dir, $dotenv);

  return getenv('APP_ENV');

});

【讨论】:

    猜你喜欢
    • 2021-03-02
    • 2018-06-30
    • 2015-08-02
    • 2020-01-26
    • 2015-09-22
    • 1970-01-01
    • 2015-07-07
    • 1970-01-01
    • 2022-01-03
    相关资源
    最近更新 更多