Theming в Drupal берет обработанные данные от Drupal и выводит его в структуре HTML так, чтобы веб-браузеры могли вывести на экран содержание. Темы делают веб-сайты Drupal красивыми и имеют значение для удобного использования и разработки. Хорошая тема покажет лучшие части вашего сайта, сохраняя при этом скорость и гибкость, которые предлагает Drupal.
 
Так же, как вы не можете успешно построить дом, не зная, что такое молоток или где найти пиломатериалы и материалы, вы не можете успешно проецировать сайт, если вы не знаете о его переменных и настройках. Чтобы помочь в этом, мы включим встроенную отладку и добавим / отредактируем некоторые настройки. Мы также будем загружать и включать модуль Devel, чтобы дать нам еще больше информации о том, что происходит я ядре Drupal.
 

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

 

Когда я занимаюсь сайтом Drupal, мне нужно знать, какие переменные доступны в файле шаблона. В Drupal 8 механизм шаблонов - Twig, поэтому нам нужно будет немного узнать Twig, чтобы сделать эту работу. Итак, если Twig для вас совершенно новый, не волнуйтесь. Сегодня вы узнаете о нём больше.
 
Чтобы разрабатывать с качество и быстро, вам нужна некэшируемая среда, так, чтобы изменения, которые вы вносите в код, отображались без чистки кэша. В комплект Drupal 8 входит максимально возможное количество кеширования. При разработке вы сталкиваетесь с неудобствами, если изменения, внесенные вами в код, не отражаются при обновлении.
 
Используя Ваш терминал, найдем файл settings.phр. Файл обычно находится в MYDRUPAL/sites/default/settings.php.
 
chmod -Rf 775 MYDRUPAL/sites/default/
 

Отключение кэша

 

В первую очередь, вы должны скопировать и переименовать sites/example.settings.local.php в sites/default/settings.local.php
После раскомментируйте для включения “null cache service”: 
 
$settings['container_yamls'][] = DRUPAL_ROOT . '/sites/development.services.yml';
 
раскомментируйте эти строки, чтобы отключить агрегацию CSS / JS:
 
$config['system.performance']['css']['preprocess'] = FALSE;
$config['system.performance']['js']['preprocess'] = FALSE;
 
раскомментируйте эти строки, чтобы отключить кеш рендеринга и кеш динамической страницы:
 
$settings['cache']['bins']['render'] = 'cache.backend.null';
$settings['cache']['bins']['dynamic_page_cache'] = 'cache.backend.null';
 
Чтобы Drupal 8 не подхватывал тесты из модулей, нужно поменять значение этой настройки на FALSE:
 
$settings['extension_discovery_scan_tests'] = TRUE;
 
В файле settings.php раскомментируйте следующие строки, это подключит созданный нами settings.local.php:
 
if (file_exists(__DIR__ . '/settings.local.php')) {
  include __DIR__ . '/settings.local.php';
}
 
Затем, чтобы отключить кэширование Twig, откройте файл sites/development.services.yml и добавьте следующие настройки:
 
parameters:
    twig.config:
        debug: true
        auto_reload: true
        cache: false
 

Отображение ошибок

 
Как и в Drupal 7, вы можете настроить отображение различных уровней ошибок (посетив эту страницу: /admin/config/development/logging в БО):
 
  • None
  • Errors and warnings
  • All
В Drupal 8 есть четвертый уровень, называемый «All messages, with backtrace information». Это в ядре Drupal и позволяет отображать обратную трассировку ошибки в области сообщений.
 
Вы также можете настроить уровень ошибок в локальном файле настроек:
 
$config['system.logging']['error_level'] = 'verbose';
 

Создание сообщений журнала (watchdog)

 
Разработчики из Drupal 7 знают о watchdog , который позволяет регистрировать сообщения в базе данных.
Ну, этот модуль все еще существует в Drupal 8, но функция имеет замену: 
Это выглядит так:
 
// Logs an error
\Drupal::logger('my_module')->error($message);
 

Как вывести переменные с помощью Kint в Drupal 8 модуль Devel

 

При разработке модуля или изменении шаблона в Drupal вы часто выводите переменные, особенно если вы используете hooks.
Возможно вы используете функции var_dump и print_r. Но эти функции иногда могут отображать слишком много информации и могут быть не читабельны если это массивы или методы.
В Drupal 7 с модулем Devel вы можете использовать функцию dpm или dsm. При использовании эти функции выводить переменные в верхней части страницы или в области сообщений с помощью Krumo.
Теперь в Drupal 8 Devel приняла новую библиотеку для печати переменных и называется Kint.
 
 
Kint поставляется в качестве подмодуля в Devel, а сама библиотека также находится в подмодуле. Итак, все, что вам нужно сделать, это загрузить и установить.
Ниже приведены команды Drush для загрузки и установки:
 
drush dl devel
drush en kint
 
Как упоминалось ранее, kint выступает в качестве подмодуля, поэтому он не заменил добрые старые dpm и dsm, эти функции все еще существуют.
 
Вместо этого вы получаете два новых: kint и ksm.
Функция kint выводит все в верхней части страницы.
 
 
Функция ksm выводит сообщения в области вашей темы.
 
 
 
После того, как вы вывели переменную на экране, вы хотите развернуть и посмотреть, что в ней.
Kint позволяет вам перемещаться по двум направлениям. Во-первых, если вы щелкнете в любом месте строки, он расширит только следующий уровень.
Но если вы нажмете на значок +, он расширит все дочерние элементы ниже.
Посмотрите на GIF ниже, чтобы посмотреть, как это работает.