Конфигурация

Введение

Все файлы конфигурации для фреймворка Laravel хранятся в папке config. Каждая опция документирована, так что не стесняйтесь просматривать файлы и знакомиться с доступными вариантами.

Доступ к значениям конфигурации

Вы можете легко получить доступ к значениям конфигурации, используя глобальную функцию config. Значения конфигурации доступны с помощью использования синтаксиса "точки", включающий в себя имя файла и опции, к которым необходимо получить доступ. Также может быть определено значение по-умолчанию, если опция конфигурации не существует:

$value = config('app.timezone');
$value = config('app.timezone', 'America/Chicago');

Также Вы можете получить значение вложенного массива, используя все те же "точки":

/*
 * config "my" with returned:
 *
 * return [
 *     "option" => [
 *         "option1" => "value 1",
 *         "option2" => "value 2",
 *     ]
 * ];
 */

$value = config('my.option.option1');

Вы можете установить значения конфигурации во время использования, передав массив в config:

config(['app.timezone' => 'America/Chicago']);

Конфигурация окружающей среды

Часто бывает полезным наличие различных значений конфигурации, основанных на окружающей среде запущенного приложения. Например, Вы можете захотеть использовать другой драйвер локального кэша для продакшн-сервера. Это легко, используя окрущающую среду на основе конфигурации.

Для реализации этого метода, Laravel содержит PHP-библиотеку DotEnv, разработанную Vance Lucas. При чистой установке фреймворка, в корне приложения Вы увидите файл .env.example. При установке фреймворка Laravel через Composer, этот файл будет автоматически переименован в .env. В противном случае, Вы должны переименовать файл вручную.

Все переменные, перечисленные в этом файле, будут загружены в супер-глобальную переменную $_ENV. Таким образом, Вы можете использовать env для получения значений из конфигурации окружающей среды. Если Вы посмотрите конфигурационные файлы Laravel, Вы заметите, что некоторые варианты уже используют этот хелпер:

'debug' => env('APP_DEBUG', false),

Второе значение передается функции env как "дефолтное". Это значение будет использоваться, если в окружающей среде не существует запрашиваемого ключа.

Ваш файл .env не должен использоваться приложением контроля версий, поскольку каждый разработчик/сервер может настраивать конфигурацию окружающей среды под себя.

Если Вы разрабатываете приложение командой, Вы можете задавать базовые настройки в файле .env.example. Таким образом, другие разработчики могут видеть какие переменные используются приложением.

Определение текущей среды

Текущая окружающая среда приложения определеяется через переменную APP_ENV из Вашего файла .env. Вы можете получить это значение при помощи метода environment в фасаде App:

$environment = App::environment();

Вы также можете передавать аргументы метода environment для проверки соответствия значения. При необходимости, Вы можете передать несколько значений для метода environment. Если среда соответствует любому из заданных значений, этот метод вернет true:

if (App::environment('local')) {
    // The environment is local
}

if (App::environment('local', 'staging')) {
    // The environment is either local OR staging...
}

An application instance may also be accessed via the app helper method: Экземпляры приложения также могут быть доступны через вспомогательный метод app:

$environment = app()->environment();

Кэширование конфигурации

Для повышения скорости Вашего приложения, все конфигурационные файлы должны быть объединены в один файл, используя команду Artisan config:cache. Кэширование позволит фреймворку более быстро получать значения параметров Вашей конфигурации.

Для кэширования конфигурации необходимо воспользоваться командой php artisan config:cache. В случае, если параметры конфигурации часто изменяются в процессе разработки, использовать команду рекомендуется непосредственно перед публикацией приложения.

Режим обслуживания

Когда приложение находится в режиме обслуживания, настраиваемое представление будет отображать все запросы для Вашего приложения. Это позволи легко "отключить" Ваше приложение во время его обновления или при проведении технического обслуживания. Проверка режима обслуживания входит в промежуточный стек приложения. Если приложение находится в режиме обслуживания, HttpException вернет код статуса 503.

To enable maintenance mode, simply execute the down Artisan command: Для включения режима обслуживания, просто выполните Artisan-команду down:

php artisan down

Для выключения режима обслуживания, используйте команду up:

php artisan up

Возвращаемый шаблон режима обслуживания

По-умолчанию, шаблон для режима обслуживания размещен в resources/views/errors/503.blade.php. Вы можете изменить его при необходимости.

Режим обслуживания и очереди

Пока приложение находится в режиме обслуживания, задания очереди не будут выполняться. Задания будут выполняться в нормальном режиме как только приложение выйдет из режима обслуживания.

Альтернативы режима обслуживания

Поскольку вход в режим обслуживания требует несколько секунд, Вы можете использовать альтернативный метод нулевого времени простоя для Laravel.