Переведено лично мной, без изысков и умных терминов (как есть). Кому надо - читайте, но помните - мною могут быть допущены ошибки.

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

Вступление

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

Конфигурация среды

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

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

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

Если вы разрабатываете с командой, вы можете продолжить включать файл «.env.example» в ваше приложение. Поместив значения заполнителя в пример файла конфигурации, другие разработчики в вашей команде могут четко видеть, какие переменные среды необходимы для запуска вашего приложения. Вы также можете создать файл «.env.testing». Этот файл переопределит файл при запуске тестов PHPUnit или выполнении команд Artisan с параметром «—env=testing».

Любая переменная в вашем файле «.env» может быть переопределен внешними переменными среды, такими как переменные среды уровня сервера или системы.

Типы переменных среды

Все переменные в вашем файле «.env» анализируются как строки, поэтому некоторые зарезервированные значения были созданы, чтобы позволить вам возвращать более широкий диапазон типов из функции env():

#Значение .envЗначение env()
1true(bool) true
2(true)(bool) true
3false(bool) false
4(false)(bool) false
5empty(string) »
6(empty)(string) »
7null(null) null
8(null)(null) null

Если вам нужно определить переменную среды со значением, содержащим пробелы, вы можете сделать это, заключив значение в двойные кавычки.

APP_NAME="My Application"

Возвращени конфигурации среды

Все переменные, перечисленные в этом файле, будут загружены в суперглобальный массив PHP $_ENV, когда ваше приложение получит запрос. Однако вы можете использовать помощник (хелпер, helper) «env» для извлечения значений из этих переменных в файлах конфигурации. На самом деле, если вы просмотрите файлы конфигурации Laravel, вы заметите несколько вариантов, уже использующих этот хелпер:

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

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

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

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

$environment = App::environment();

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

    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.

Чтобы включить режим обслуживания, выполните команду Artisan «down»:

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.

Заказать сайт