Отладка Twig шаблонов
Опубликовано: 02.11.2017
Другие статьи серии Twig
При отладке переменных в Twig шаблоне нужно учитывать некоторые особенности шаблонизатора. Во-первых, Twig не позволит вам вызывать php функции, которые вы могли использовать при отладке php шаблонов: var_dump(), print_r(), dpm() (функция модуля devel) и другие. Привычная отладка с помощью xdebug в файлах twig шаблонов тоже недоступна. Во-вторых, шаблоны Twig компилируются в php файлы, которые кешируются в файловой системе (в Drupal 8 файлы хранятся в каталоге sites/default/files/php/twig). И после установки Drupal 8 отладочные функции twig будут недоступны, также вы не увидите изменений сделанных в шаблоне до очистки кеша (кеш в Drupal 8 с помощью drush чистится командой drush cr или с помощью аналогичной команды Drupal Console drupal cr).
Как включить отладку шаблонов
Для включения возможности отладки выполните следующие действия:
при использовании Drupal Console нужно просто выполнить команду: при отсутствии Drupal Console найдите файл services.yml, который обычно размещен в sites/default/services.yml; если файл sites/default/services.yml не существует, просто скопируйте файл sites/default/default.services.yml в sites/default/services.yml; далее нужно будет отредактировать файл sites/default/services.yml и отметить в нем нужные опции для отладки шаблонов.Отладочные опции Twig:
# sites/default/services.yml parameters: twig.config: debug: true # Twig debuggingКакие возможности дает включенная опция debug в значение true в sites/default/services.yml?
4. Знакомство с файлами разметки twig. Cоздание тем в Drupal 8 - вводный курс для начинающих.
Во-первых, в исходном html коде страницы все части кода будут обернуты в комментарии с информацией о используемых для вывода шаблонах и всех возможных вариантах именования файлов шаблонов (template suggestions).
5. Page.html.twig и регионы. Cоздание тем в Drupal 8 - вводный курс для начинающих.
Во-вторых, в шаблонах Twig появится возможность использования функцию dump() для вывода отладочной информации о переменных шаблона.
В-третьих, все файлы шаблона будут автоматически перекомпилироваться после любого изменения, внесенного в файл шаблона (смотри опцию auto_reload ниже). По умолчанию опция установлена в false.