Отключение кэширования twig в Drupal 8

Опубликовал Максим Баев, 16 октября 2016, 14:58

cant-create-theme-in-drupal-8.jpg

По умолчанию, в Drupal 8 включено кэширование Twig шаблонов. Это создает определенные трудности при разработке тем: каждое изменение требует сбрасывания кэша, что рано или поздно приводит разработчиков в бешенство)

Конечно же, о нас уже позаботились и придумали механизмы упрощения разработки.

Мат в три хода

Для того, чтобы выключить кэш нужно:

  1. Поместить следующие настройки в sites/development.services.yml

    parameters:
      twig.config:
        debug: true
        auto_reload: true
        cache: false
    
  2. Подключить файл development.services.yml в settings.local.php (найдите и раскомментируйте строку)

    Файл settings.local.php можно скопировать из sites/example.settings.local.php в sites/default/settings.local.php или другую папку на которую настроен ваш сайт. Главное, чтобы он лежал рядом с актуальным файлом settings.php.
    <?php
    $settings['container_yamls'][] = DRUPAL_ROOT . '/sites/development.services.yml';
    
  3. Файл settings.local.php, в свою очередь, нужно подключить в файле settings.php (найти и раскомментировать строки)

    <?php
    if (file_exists(__DIR__ . '/settings.local.php')) {
      include __DIR__ . '/settings.local.php';
    }
    

Сбрасываем кэш и радуемся. Вопросы и предложения пишите в комментариях.

Постскриптум

В файле settings.local.php можно найти много интересного. Например, так можно принудительно выключить агрегацию файлов css и js:

<?php
$config['system.performance']['css']['preprocess'] = FALSE;
$config['system.performance']['js']['preprocess'] = FALSE;

Также можно выключить некоторые виды кэширования, установить уровень ошибок, для отображения и другое.


Upd.

Если стоит Drupal console, то все вышесказанное можно выполнить командой

drupal site:mode dev

Другие посты