为什么laravel记录整个env文件


Why laravel logging entire env file?

我注意到,当我试图记录其他不相关的内容时,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文件正在工作,但我不明白为什么文件的内容被打印在日志文件中。

神经紧张,问题是如果我使用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');
});