2016-05-05 6 views
0

私は、Laravel(5.1)が関連していない何か他のものを記録しようとすると、.envファイル全体を記録していることに気付きました。なぜlaravelは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のファイルを持っているものですが、私はそれなぜコンテンツ得ることはありませんのファイルがログファイルに出力されています。

+2

あなたは答えとしてこれを入れて、答えとして質問をマークする必要があります。 – alexrussell

答えて

0

Nerverの心は、問題は、私は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'); 

}); 
関連する問題