9.3. Отключаем кеш в Drupal 8. Вывод debug информации в шаблоне.
Прежде чем приступить к разработке на Drupal 8 следует отключить кеш. В отличии от Drupal 7 в 8ой версии друпала кешируется не только сущности, views, поля, теперь кешируются скомплированные шаблоны twig'a и всевозможные render'ы. Для того чтобы отключить весь этот кеш, нужно сделать следующее.
1. Скопируйте файл /sites/example.settings.local.php в файл /sites/default/settings.local.php
В этом файле уже есть необходимые настройки для отключения кеша
2. В файле settings.php раскомментируйте следующие строки, это подключит созданный нами settings.local.php:
if (file_exists(__DIR__ . '/settings.local.php')) {
include __DIR__ . '/settings.local.php';
}
Это подключит local.settings.php.
3. Проверьте что эта строчка расскомментирована в settings.local.php:
$settings['container_yamls'][] = DRUPAL_ROOT . '/sites/development.services.yml';
Файл development.services.yml уже создан, нам нужно только его подключить.
4. Нужно также проверить что в settings.local.php отключена агрегация CSS и Javascript:
$config['system.performance']['css']['preprocess'] = FALSE;
$config['system.performance']['js']['preprocess'] = FALSE;
5. Также нужно отключить кеширование отрендеренного HTML и кеш модуля Dynamic Pages:
$settings['cache']['bins']['render'] = 'cache.backend.null';
$settings['cache']['bins']['dynamic_page_cache'] = 'cache.backend.null';
Найдите эти строки в settings.local.php и раскомментируйте их.
6. Чтобы Drupal 8 не подхватывал тесты из модулей, нужно поменять значение этой настройки на FALSE:
$settings['extension_discovery_scan_tests'] = FALSE;
7. Теперь в /sites/development.services.yml нужно дописать следующий абзац:
parameters:
twig.config:
debug: true
auto_reload: true
cache: false
В результате development.services.yml будет выглядеть вот так:
# Local development services.
#
# To activate this feature, follow the instructions at the top of the
# 'example.settings.local.php' file, which sits next to this file.
services:
cache.backend.null:
class: Drupal\Core\Cache\NullBackendFactory
parameters:
http.response.debug_cacheability_headers: true
twig.config:
debug: true
auto_reload: true
cache: false
Очень важно соблюдать переносы строк и отступы в yml файлах, в качестве отступов используйте только 2 пробела и никаких символов табуляции.
debug: true
Эта строчка отвечает за распечатывание возможных названий для переопределия каждого используемого шаблона для вывода на странице. Иногда это может ломать верстку и вызывать ошибку в некоторых модулях, хотя и очень редко. В остольном это очень удобная вещь для изучения структуры шаблонов в Drupal 8.
8. После этого нужно почистить кеш, что можно сделать через drush:
drush cr
Или запустив скрипт на сайте:
http://yoursite/core/rebuild.php