Может войдёшь?
Черновики Написать статью Профиль

Настройка

перевод документация 5.х

  1. 1. Введение
  2. 2. После установки
    1. 2.1. Название вашего приложения
    2. 2.2. Другие настройки
    3. 2.3. Права доступа
  3. 3. Настройки среды
    1. 3.1. Определение текущей среды
  4. 4. Чтение значений настроек
  5. 5. Кэширование настроек
  6. 6. Режим обслуживания
  7. 7. Красивые URL
    1. 7.1. Apache
    2. 7.2. Nginx
Этот перевод актуален для англоязычной документации на (ветка 5.3) , (ветка 5.2) и (ветка 5.0). Опечатка? Выдели и нажми Ctrl+Enter.

Данная статья документации актуальна для версий 5.3, 5.2 и 5.0, для версии 5.1 не актуальна.

Введение

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

+ 5.0

добавлено в 5.0 ()

После установки

Название вашего приложения

После установки Laravel вам может потребоваться «назвать» ваше приложение. По умолчанию каталог app находится в пространстве имён PHPApp и автоматически загружается с помощью Composer по стандарту автозагрузки PSR-4. Но вы можете изменить пространство имён в соответствии с названием вашего приложения с помощью Artisan-команды shapp:name.

Например, если ваше приложение называется «Horsefly», вы можете выполнить следующую команду в корне вашей инсталляции:

shphp artisan app:name Horsefly

Задание имени для вашего приложения вовсе не обязательно, и вы можете оставить пространство имён PHPApp, если захотите.

Другие настройки

После установки Laravel нужно настроить самую малость. Вы можете сразу начинать разработку! Но если захотите, просмотрите файл config/app.php и его документацию. Он содержит несколько параметров, таких как timezone и locale, которые могут пригодиться для настройки вашего приложения в зависимости от вашего местоположения.

После установки Laravel вам также надо настроить вашу локальную среду.

Внимание: никогда не устанавливайте параметр app.debug в значение true для продакшна.

Права доступа

Для Laravel может потребоваться настроить один набор прав доступа: веб-серверу требуются права записи в папки, находящиеся в storage и vendor.

Настройки среды

Часто необходимо иметь разные значения для различных настроек в зависимости от среды, в которой выполняется приложение. Например, вы можете захотеть использовать разные драйвера кэша на локальном и продакшн-сервере.

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

+ 5.3

добавлено в 5.3 ()

Также вы можете создать файл .env.testing. Этот файл переопределит значения файла .env при запуске тестов PHPUnit и при выполнении Artisan-команд с ключом sh--env=testing.

Чтение настроек среды

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

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

Второе аргумент этой функции — значение по умолчанию. Оно будет использовано, если такой переменной среды нет.

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

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

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

+ 5.2

добавлено в 5.2 ()

Текущая среда приложения определяется по переменной PHPAPP_ENV в файле .env. Вы можете получить это значение методом PHPenvironment() фасада App:

PHP
$environment App::environment();

Также вы можете передавать аргументы в метод PHPenvironment(), чтобы проверить — совпадает ли имя среды с заданным значением. Метод вернёт PHPtrue, если среда совпадёт с любым из них:

PHP
if (App::environment('local')) {
  
// Среда локальная (local)
}

if (
App::environment('local''staging')) {
  
// Среда локальная (local) ИЛИ отладочная (staging)...
}

Экземпляр приложения также доступен через вспомогательный метод PHPapp():

PHP
$environment app()->environment();
+ 5.0

добавлено в 5.0 ()

Вы можете получить имя текущей среды приложения с помощью метода PHPenvironment для экземпляра PHPApplication:

PHP
$environment $app->environment();

Также вы можете передавать аргументы в метод PHPenvironment(), чтобы проверить — совпадает ли имя среды с заданным значением. Метод вернёт PHPtrue, если среда совпадёт с любым из них:

PHP
if ($app->environment('local'))
{
  
// Среда локальная (local)
}

if (
$app->environment('local''staging'))
{
  
// Среда локальная (local) ИЛИ отладочная (staging)...
}

Чтобы получить экземпляр приложения, выполните контракт Illuminate\Contracts\Foundation\Application с помощью сервис-контейнера. Конечно, когда вы находитесь внутри сервис-провайдера, экземпляр приложения доступен через переменную PHP$this->app.

Экземпляр приложения также доступен через функцию PHPapp() или фасад PHPApp:

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

$environment App::environment();

Чтение значений настроек

+ 5.3 5.2

добавлено в 5.3 () 5.2 ()

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

PHP
$value config('app.timezone');

Для задания значений настроек во время выполнения передайте массив в функцию PHPconfig():

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

добавлено в 5.0 ()

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

PHP
$value Config::get('app.timezone');

Config::set('app.timezone''America/Chicago');

Вы также можете использовать вспомогательную функцию PHPconfig:

PHP
$value config('app.timezone');

Кэширование настроек

Для повышения скорости работы вашего приложения вы можете кэшировать все файлы настроек в единый файл с помощью Artisan-команды shconfig:cache. Она объединит все параметры настроек вашего приложения в единый файл, который будет быстро загружен фреймворком.

У вас должно войти в привычку запускать команду shphp artisan config:cache, как типичная часть разработки. Не стоит запускать эту команду в процессе локальной разработки, так как при этом часто требуется изменять параметры настроек.

+ 5.3

добавлено в 5.3 ()

Если вы выполняете команду shconfig:cache во время процесса развёртывания, вы должны быть уверены, что вызываете функцию PHPenv() только из ваших файлов настроек.

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

Когда ваше приложение находится в режиме обслуживания (maintenance mode), специальный шаблон будет отображаться для всех запросов в вашем приложении. Это позволяет легко «отключать» приложение во время его обновления или при обслуживании. Проверка режима обслуживания включена в стандартный набор посредников для вашего приложения. Когда приложение находится в режиме обслуживания, будет вызвано исключение MaintenanceModeException с кодом состояния 503 (для версии 5.2 и ранее — HttpException).

Для включения этого режима просто выполните Artisan-команду down:

shphp artisan down
+ 5.3

добавлено в 5.3 ()

Также вы можете передать в команду down опции message и retry. Значение message можно использовать для вывода или записи в журнал необходимого сообщения, а значение retry будет задано в качестве значения HTTP-заголовка Retry-After:

shphp artisan down --message="Upgrading Database" --retry=60

Чтобы выйти из режима обслуживания выполните команду up:

shphp artisan up

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

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

+ 5.2

добавлено в 5.2 ()

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

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

+ 5.0

добавлено в 5.0 ()

Красивые URL

Apache

Фреймворк поставляется с файлом public/.htaccess, который используется для реализации URL-адресов без index.php. Если вы используете Apache для работы вашего Laravel-приложения, убедитесь, что включён модуль mod_rewrite.

Если поставляемый с Laravel файл .htaccess не работает с вашей инсталляцией Apache, попробуйте этот:

confOptions +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

Если ваш хостинг не разрешает опцию FollowSymlinks, попробуйте заменить её на Options +SymLinksIfOwnerMatch.

Nginx

В Nginx следующая директива в настройках вашего сайта позволит использовать «красивые» URL-адреса:

PHP
location / {
  
try_files $uri $uri/ /index.php?$query_string;
}

Само собой, при использовании Homestead красивые URL будут настроены автоматически.

Написать комментарий

Разметка: ? ?

Авторизуйся, чтобы прокомментировать.