我注意到,当我试图记录其他不相关的内容时,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');
});