9.3. Отключаем кеш в Drupal 8. Вывод debug информации в шаблоне.

Главные вкладки

levmyshkin 7 августа 2019 в 6:10
1

Видео: https://youtu.be/QjCmvtQ9Ix4

Прежде чем приступить к разработке на 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

Атрибуция

Абраменко Иван

Автор