settings.local.php — файл с настройками локального окружения сайта. Является дополнением settings.php и использует все доступные его настройки.
Данный файл заменят, дополняет или выключает определённые настройки и поведение сайта для локальной системы. Используется при разработке проекта.
¶Создание файла
По умолчанию данный файл отсутствует. Для него поставляется стандартный пример example.settings.local.php
который можно найти в директории /sites
.
Для создания собственного файла достаточно скопировать example.settings.local.php
в папку сайта, где уже находится основной settings.php
и переименовать его в settings.local.php
.
¶Подключение
Данный файл подключается из основного файлы settings.php
. В конце этого файла вы можете найти следующие строки:
# if (file_exists($app_root . '/' . $site_path . '/settings.local.php')) {
# include $app_root . '/' . $site_path . '/settings.local.php';
# }
Вам достаточно раскомментировать их и настройки из settings.local.php
начнут загружаться и использоваться. Вы можете менять данное условие и поведение так как вам угодно. Данный файл должен подключаться в самом конце settings.php
для того чтобы он мог изменять все основные настройки.
¶Применение
Файл settings.local.php
применяется на локальных окружения в процессе разработки и заменяет некоторые настройки системы на специальные. Например, отключается кеширование, сжатие и объединение JavaScript и CSS файлов и прочие изменения необходимые для разработки, но не нужны на рабочем проекте.
Эти изменения производятся в settings.local.php
для того чтобы эти настройки были явно отражены и было удобно переносить проект, делиться изменениями с командой и т.д.
¶Настройки по умолчанию
В данном разделе рассмотрены все настройки по умолчанию, который указаны в example.settings.local.php
файле и подойдут для большинства проектов и задач.
¶Assertions
Drupal использует сравнения (assert), для того чтобы сообщать об ошибках использования API. Когда обнаружена проблема, запрос будет провален и выдана ошибка.
Данная настройка включает сравнения, которые по умолчанию отключены, чтобы в процессе разработки замечать ошибки на ранних стадиях.
Пример:
assert_options(ASSERT_ACTIVE, TRUE);
\Drupal\Component\Assertion\Handle::register();
¶Сервисы для разработки
В данном файле подключается файл development.services.yml
с сервисами и параметрами для разработки, которые будут загружены в контейнер.
Пример:
$settings['container_yamls'][] = DRUPAL_ROOT . '/sites/development.services.yml'
¶Подробное логирование
Для конфигурации system.logging
задаётся степень детализации ошибок на подробные (verbose
). Это значит, что все ошибки будут выводиться, включая стэк вызова.
$config['system.logging']['error_level'] = 'verbose';
¶Агрегация JS и CSS
В конфигурации system.performance
отключается обработка JavaScript и CSS файлов. Это значит что о ни не будут объединяться, сжиматься и кешироваться. Так вы сможете видеть изменения на сайте сразу после их внесения без необходимости сброса кеша.
$config['system.performance']['css']['preprocess'] = FALSE;
$config['system.performance']['js']['preprocess'] = FALSE;
¶Кеш рендера
Кеш рендера отвечает за хранение результатов рендера рендер массивов. В процессе активной разработки он может доставлять серьезные неудобства, поэтому его рекомендуется отключать.
При помощи данной настройки вы можете отключить кеширование результатов перенаправляя весь кеш в Null хранилище, который ничего не хранит.
Пример:
$settings['cache']['bins']['render'] = 'cache.backend.null';
¶Кеш миграций
Кеш миграций хранит в себе информацию о всех объявленных миграциях. Если вы активно пишите миграции, вы можете переключить хранение миграций в память, чтобы они обнаруживались сразу как только вы их объявляете.
Пример:
$settings['cache']['bins']['discovery_migration'] = 'cache.backend.memory';
¶Кеш страниц
Кеш страниц, который предоставляется модулем Internal Page Cache, хранит в себе готовые результаты страниц. В процессе активной разработки он может доставлять серьезные неудобства, поэтому его рекомендуется отключать.
$settings['cache']['bins']['page'] = 'cache.backend.null';
¶Динамический кеш страниц
Динамический кеш страниц, который предоставляется модулем Dynamic Page Cache, хранит в себе готовые результаты страниц, в зависимости от роли пользователя и прочих контекстов.
$settings['cache']['bins']['dynamic_page_cache'] = 'cache.backend.null';
¶Включить обнаружение тестовых расширений
По умолчанию доступны только расширения (модули, темы оформления) которые не помечены как тестовые. При помощи данной настройки, вы можете включить их обнаружение и отображение в административном интерфейсе.
Пример:
$settings['extension_discovery_scan_tests'] = TRUE;
¶Доступ к ребилду
Drupal очень серьезно кеширует всю информацию что собирает. Даже с отключением различных кешей выше, он будет собираться. Например, информация о хуках, темплейтах, расширениях и т.д. кешируется даже в процессе разработки, так как оказывает серьезное влияние на производительность, а требуется нечасто.
Для того чтобы эти кеши были очищены нужно запустить ребилд системы. Для этого с Drupal поставляется файл rebuild.php
, который не будет делать ничего, пока данная настройка отключена.
В процессе активной разработки вам потребуется регулярно запускать ребилд системы, поэтому данное поведение активируется. Для того чтобы запустить ребилд вам будет достаточно напрямую обратиться к файлу https://example.com/rebuild.php
.
Пример:
$settings['rebuild_access'] = TRUE;
¶Отключение принудительного изменения прав на запись для директории сайта
По умолчанию Drupal регулярно проверяет важные директории и сбрасывает им права на запись. Это может вызвать неудобства в процессе разработки, поэтому данные проверки рекомендуется отключать.
$settings['skip_permissions_hardening'] = TRUE;
¶Смотрите также
- settings.php — основные настройки окружения.