Я установил новую копию 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
? Но если нет, где их хранить? Я не знаю, если это ошибка или функция, поэтому, если кто-нибудь знает об этом, пожалуйста, дайте мне ключ.