新しい Laravel 5 コピーをインストールしました。
私の detectEnvironment 関数は次のように定義されています。
$app->detectEnvironment(function()
{
return 'local';
return getenv('APP_ENV') ?: 'production';
});
ファイルconfig\local
を作成しました:database.php
<?php
return [
'nothing' => 'new',
];
私は走りphp artisan clear-compiled
ます。
私index
のメソッドWelcomeController
は次のように定義されています。
public function index(Application $app)
{
echo $app->environment();
var_dump($app['config']['database']);
//echo $app['config']['database'];
return view('welcome');
}
アプリケーションは次のようにインポートされました。 use Illuminate\Foundation\Application;
私が得る結果は次のとおりです。
local array(1) { ["nothing"]=> string(3) "new" }
一方、Laravelは構成ファイルを本番環境にカスケードすることを期待しています(デフォルトのconfig\database.php
ファイル.
return 'local';
奇妙なことに、行をもう一度コメントしても、次のようphp artisan clear-compiled
に表示されます。
production array(1) { ["nothing"]=> string(3) "new" }
そのため、常にdatabase.php
ファイル コンテンツ (これはローカル フォルダーからのもの) を読み込み、メインdatabase.php
ファイルをオーバーライドしているようです。このファイル名をたとえばに変更すると、再び正常に動作しますaaa.php
。
config
それはバグですか、それとも環境設定をディレクトリ内に保存すべきではないのでしょうか? しかし、そうでない場合、どこに保管する必要がありますか? バグなのか仕様なのかわからないので、詳しい方がいましたら教えてください。