Вступление
Все файлы конфигурации для платформы Laravel хранятся в config
каталоге. Каждый вариант задокументирован, поэтому вы можете свободно просматривать файлы и знакомиться с доступными вам опциями.
Конфигурация среды
Часто полезно иметь разные значения конфигурации в зависимости от среды, в которой запущено приложение. Например, вы можете использовать локально другой драйвер кеша, чем на рабочем сервере.
Чтобы сделать это проще, Laravel использует PHP-библиотеку DotEnv от Vance Lucas. В новой установке Laravel корневой каталог вашего приложения будет содержать файл. Если вы устанавливаете Laravel через Composer, этот файл будет автоматически переименован в . В противном случае вам следует переименовать файл вручную..env.example
.env
Ваш .env
файл не должен быть привязан к контролю исходного кода вашего приложения, поскольку каждому разработчику / серверу, использующему ваше приложение, может потребоваться отдельная конфигурация среды. Кроме того, это будет представлять угрозу безопасности в случае, если злоумышленник получит доступ к вашему репозиторию управления источниками, поскольку будут раскрыты любые конфиденциальные учетные данные.
Если вы разрабатываете с командой, вы можете продолжить включать файл в ваше приложение. Поместив значения заполнителей в пример файла конфигурации, другие разработчики в вашей команде могут четко видеть, какие переменные среды необходимы для запуска вашего приложения. Вы также можете создать файл. Этот файл переопределит файл при запуске тестов PHPUnit или выполнении команд Artisan с параметром..env.example
.env.testing
.env
--env=testing
Любая переменная в вашем
.env
файле может быть переопределена внешними переменными среды, такими как переменные среды уровня сервера или системы.
Типы переменных среды
Все переменные в ваших .env
файлах анализируются как строки, поэтому были созданы некоторые зарезервированные значения, чтобы вы могли возвращать более широкий диапазон типов из функции:env()
.env Value |
env() Value |
---|---|
true | (bool) true |
(true) | (bool) true |
false | (bool) false |
(false) | (bool) false |
empty | (string) '' |
(empty) | (string) '' |
null | (null) null |
(null) | (null) null |
Если вам нужно определить переменную среды со значением, содержащим пробелы, вы можете сделать это, заключив значение в двойные кавычки.
APP_NAME="My Application"
Получение конфигурации среды
Все переменные, перечисленные в этом файле, будут загружены в $_ENV
суперглобальный PHP, когда ваше приложение получит запрос. Однако вы можете использовать env
помощника для получения значений из этих переменных в ваших файлах конфигурации. Фактически, если вы просмотрите файлы конфигурации Laravel, вы заметите несколько вариантов, уже использующих этот помощник:
'debug' => env('APP_DEBUG', false),
Второе значение, переданное env
функции, является «значением по умолчанию». Это значение будет использоваться, если для данного ключа не существует переменной среды.
Определение текущей среды
Текущая среда приложения определяется через APP_ENV
переменную из вашего .env
файла. Вы можете получить доступ к этому значению с помощью environment
метода на App
фасаде :
$environment = App::environment();
Вы также можете передать аргументы environment
методу, чтобы проверить, соответствует ли среда заданному значению. Метод вернется, true
если среда соответствует любому из указанных значений:
if (App::environment('local')) {
// The environment is local
}
if (App::environment(['local', 'staging'])) {
// The environment is either local OR staging...
}
Текущее обнаружение среды приложения может быть переопределено
APP_ENV
переменной среды уровня сервера . Это может быть полезно, когда вам нужно совместно использовать одно и то же приложение для разных конфигураций среды, поэтому вы можете настроить данный хост в соответствии с конкретной средой в конфигурациях вашего сервера.
Скрытие переменных среды от страниц отладки
Когда исключение не обработано, а APP_DEBUG
переменная окружения имеет значение true
, на странице отладки будут показаны все переменные окружения и их содержимое. В некоторых случаях вы можете захотеть скрыть определенные переменные. Вы можете сделать это, обновив debug_blacklist
опцию в вашем файле конфигурации.config/app.php
Некоторые переменные доступны как в переменных среды, так и в данных сервера / запроса. Таким образом, вам может понадобиться в черный список их как $_ENV
и $_SERVER
:
return [
// ...
'debug_blacklist' => [
'_ENV' => [
'APP_KEY',
'DB_PASSWORD',
],
'_SERVER' => [
'APP_KEY',
'DB_PASSWORD',
],
'_POST' => [
'password',
],
],
];
Доступ к значениям конфигурации
Вы можете легко получить доступ к значениям вашей конфигурации, используя глобальную config
вспомогательную функцию из любой точки вашего приложения. Доступ к значениям конфигурации можно получить с помощью синтаксиса «точка», который включает имя файла и параметр, к которому вы хотите получить доступ. Также может быть указано значение по умолчанию, которое будет возвращено, если опция конфигурации не существует:
$value = config('app.timezone');
Чтобы установить значения конфигурации во время выполнения, передайте массив config
помощнику:
config(['app.timezone' => 'America/Chicago']);
Кэширование конфигурации
Чтобы ускорить работу вашего приложения, вы должны кэшировать все ваши файлы конфигурации в один файл с помощью команды Artisan. Это объединит все параметры конфигурации вашего приложения в один файл, который будет быстро загружен платформой.config:cache
Обычно вы должны запускать команду как часть вашей рабочей процедуры развертывания. Эту команду не следует запускать во время локальной разработки, поскольку параметры конфигурации часто необходимо изменять в ходе разработки вашего приложения.php artisan config:cache
Если вы выполняете команду во время процесса развертывания, вы должны быть уверены, что вызываете функцию только из ваших файлов конфигурации. Как только конфигурация будет кэширована, файл не будет загружен и все вызовы функции вернутся .
config:cache
env
.env
env
null
Режим технического обслуживания
Когда ваше приложение находится в режиме обслуживания, для всех запросов в ваше приложение будет отображаться пользовательское представление. Это позволяет легко «отключить» ваше приложение во время его обновления или при выполнении технического обслуживания. Проверка режима обслуживания включена в стек промежуточного программного обеспечения по умолчанию для вашего приложения. Если приложение находится в режиме обслуживания, MaintenanceModeException
будет сгенерировано с кодом состояния 503.
Чтобы включить режим обслуживания, выполните команду down
Artisan:
php artisan down
Вы также можете предоставить message
и retry
параметры для down
команды. Это message
значение может использоваться для отображения или регистрации пользовательского сообщения, в то время как retry
значение будет установлено как значение заголовка HTTP:Retry-After
php artisan down --message="Upgrading Database" --retry=60
Даже в режиме обслуживания конкретным IP-адресам или сетям может быть разрешен доступ к приложению с помощью параметра команды allow
:
php artisan down --allow=127.0.0.1 --allow=192.168.0.0/16
Чтобы отключить режим обслуживания, используйте up
команду:
php artisan up
Вы можете настроить шаблон режима обслуживания по умолчанию, определив свой собственный шаблон в .
resources/views/errors/503.blade.php
Режим обслуживания и очереди
Пока ваше приложение находится в режиме обслуживания, никакие задания в очереди не будут обрабатываться. Задания будут по-прежнему обрабатываться как обычно, как только приложение выйдет из режима обслуживания.
Альтернативы режиму обслуживания
Поскольку для режима обслуживания требуется, чтобы у приложения было несколько секунд простоя, рассмотрите альтернативы, такие как Envoyer, чтобы выполнить развертывание без простоев с Laravel.
0 комментариев