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

mbaev 16.10.2016, 13:58

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

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

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

Мат в три хода

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

  1. Поместить следующие настройки в sites/development.services.yml
    1. parameters:
    2.   twig.config:
    3.     debug: true
    4.     auto_reload: true
    5.     cache: false
  2. Подключить файл development.services.yml в settings.local.php (найдите и раскомментируйте строку)
    Файл settings.local.php можно скопировать из sites/example.settings.local.php в sites/default/settings.local.php или другую папку на которую настроен ваш сайт. Главное, чтобы он лежал рядом с актуальным файлом settings.php.
    1. $settings['container_yamls'][] = DRUPAL_ROOT . '/sites/development.services.yml';
  3. Файл settings.local.php, в свою очередь, нужно подключить в файле settings.php (найти и раскомментировать строки)
    1. if (file_exists(__DIR__ . '/settings.local.php')) {
    2.   include __DIR__ . '/settings.local.php';
    3. }

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

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

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

  1. $config['system.performance']['css']['preprocess'] = FALSE;
  2. $config['system.performance']['js']['preprocess'] = FALSE;

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


Upd. от Александра Дубовского

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

  1. drupal site:mode dev
Profile picture for user Гость

Александр Дубовской , ,

Хинт, это все делается одной командой в консоли, если стоит drupal console: drupal site:mode dev .