logo

एक्स्ट्रा ब्लॉक टाइप्स (EBT) - नया लेआउट बिल्डर अनुभव❗

एक्स्ट्रा ब्लॉक टाइप्स (EBT) - स्टाइलिश, कस्टमाइज़ेबल ब्लॉक टाइप्स: स्लाइडशो, टैब्स, कार्ड्स, एकॉर्डियन्स और कई अन्य। बैकग्राउंड, DOM बॉक्स, जावास्क्रिप्ट प्लगइन्स के लिए बिल्ट-इन सेटिंग्स। आज ही लेआउट बिल्डिंग का भविष्य अनुभव करें।

डेमो EBT मॉड्यूल्स EBT मॉड्यूल्स डाउनलोड करें

❗एक्स्ट्रा पैराग्राफ टाइप्स (EPT) - नया पैराग्राफ्स अनुभव

एक्स्ट्रा पैराग्राफ टाइप्स (EPT) - एनालॉजिकल पैराग्राफ आधारित मॉड्यूल्स का सेट।

डेमो EPT मॉड्यूल्स EPT मॉड्यूल्स डाउनलोड करें

स्क्रॉल

Twig संकलित (compiled) टेम्पलेट्स की डिबगिंग

02/10/2025, by Ivan

Menu

Twig обычно как работает

По умолчанию Twig шаблонный движок компилирует шаблоны в PHP-код и сохраняет скомпилированный код в памяти. Такой скомпилированный код не удобен для разработки, потому что изменения в Twig-шаблонах не сразу отражаются на сайте Drupal.

После того как Twig закончил с разметкой, в Render API включается дополнительный уровень кеширования. Он берет HTML, сгенерированный Twig, и кэширует его так, что Twig больше не участвует в повторных запросах страницы. Поэтому параметры отладки Twig в этом случае игнорируются.

Очистку кеша можно сделать через интерфейс Drupal, но для разработки удобнее настроить Drupal так, чтобы Twig и Render API вообще ничего не кэшировали.

Настройка Twig и Render API для отладки

Оба уровня — Twig API и Render API — настраиваются отдельно для целей отладки:

1. Twig предоставляет параметры для включения отладки, авто-перезагрузки шаблонов и кэширования скомпилированных шаблонов в файловой системе. Эти параметры можно задать в services.yml.
2. Кэширование Render API настраивается в settings.php сайта.

Разберем оба этапа подробно.

1. Включение отладки Twig

Вы можете сделать это через Drupal Console или вручную.

Отладка через Drupal Console

Сначала установите Drupal Console, затем выполните:

drupal site:mode dev

Эта команда меняет ряд настроек, включая twig.config в sites/default/services.yml:

twig.config: { debug: true }

Результат будет выглядеть примерно так:

Drupal Console Twig Debug Output

Отладка Twig вручную

1. Найдите services.yml (обычно в sites/default/services.yml)
2. Если файла нет, скопируйте default.services.yml и назовите его services.yml
3. Внесите изменения: включите debug, auto_reload и при необходимости кеш
4. Очистите кеш Drupal

Пример:

parameters:
  twig.config:
    debug: true

Опции Twig

Важно: не используйте их в production!

- debug (по умолчанию false)
При debug: true:

  • Каждый шаблон Twig будет окружен HTML-комментариями с подсказками имени файла.
  • Эти комментарии ломают автоматические тесты, проверяющие HTML напрямую.
  • В Twig можно использовать функцию dump() для вывода переменных.
  • Шаблоны Twig перекомпилируются автоматически при изменении (см. auto_reload).

- auto_reload (по умолчанию null)
При auto_reload: true:

  • Шаблоны Twig пересобираются при изменении исходного кода.
  • Если не указано явно, значение берется из debug.

- cache (по умолчанию true)
При cache: false:

  • Отключается кеш Twig, все шаблоны пересобираются при каждом использовании.
  • Это замедляет работу, поэтому обычно достаточно включить auto_reload.

2. Отключение Render API кеша

По умолчанию Drupal кеширует рендеринг блоков и сущностей. Чтобы изменения в Twig-шаблонах применялись сразу, нужно отключить этот кеш.

Для этого добавьте строки в settings.php (или settings.local.php):

$settings['container_yamls'][] = DRUPAL_ROOT . '/sites/development.services.yml';
$settings['cache']['bins']['render'] = 'cache.backend.null';
$settings['cache']['bins']['dynamic_page_cache'] = 'cache.backend.null';

Обычно они уже есть в settings.php, но закомментированы — достаточно раскомментировать.

Готово!

Теперь очистите кеш (через Drush или меню «Конфигурация → Производительность → Очистить все кеши»).

После этого Twig-отладка будет включена: в HTML появятся комментарии о шаблонах, а изменения в Twig будут отображаться сразу.