Вы можете сделать это точно так же, как в Laravel 4:
$env = $app->detectEnvironment(array(
'local' => array('homestead')
));
*.env
используются только для размещения конфиденциальных данных, которые не следует помещать в VCS. То же самое в Laravel 4
но кажется, что в последние дни по умолчанию значение параметраDetectEnvironment было изменено на:
$env = $app->detectEnvironment(function()
{
return getenv('APP_ENV') ?: 'production';
});
поэтому вы можете использовать переменную настройки либо из имени ПК, либо из файла ENV.
Если вы используете обнаружение среды на основе ENV в основном файле env (по умолчанию файл .env
, вам необходимо добавить:
APP_ENV=local
Конечно, local
здесь локальная среда, вы можете изменить ее на production
или dev
.
На данный момент самая важная проблема, которую я вижу, заключается в том, что вам нужно помнить, когда вы переходите к производству, чтобы изменить содержимое этого файла .env
с APP_ENV=local
на APP_ENV=production
, поэтому, на мой взгляд, гораздо лучшим методом является старый метод по умолчанию, основанный на именах ПК.
Теперь файлы ENV. Если вы используете обнаружение среды на основе ENV, вы должны поместить в свой файл ENV только:
APP_ENV=local
Теперь вы можете создавать отдельные файлы ENV для разных сред, например:
.local.env :
MY_DB=testdb
.production.env :
MY_DB=productiondb
и теперь в файле bootstrap.environment.php
вы можете изменить:
if (file_exists(__DIR__.'/../.env'))
{
Dotenv::load(__DIR__.'/../');
}
в:
if (file_exists(__DIR__.'/../.env'))
{
Dotenv::load(__DIR__.'/../');
if (getenv('APP_ENV') && file_exists(__DIR__.'/../.' .getenv('APP_ENV') .'.env')) {
Dotenv::load(__DIR__ . '/../', '.' . getenv('APP_ENV') . '.env');
}
}
для загрузки дополнительного файла env на основе APP_ENV
из основного файла env.
Теперь вы сможете использовать его в другом файле конфигурации, как всегда: $_ENV['MY_DB']
person
Marcin Nabiałek
schedule
13.10.2014