9.3. Отключаем кеш в Drupal 8. Вывод debug информации в шаблоне.

Drupal 8 Twig cache

Прежде чем приступить к разработке на Drupal 8 следует отключить кеш. В отличии от Drupal 7 в 8ой версии друпала кешируется не только сущности, views, поля, теперь кешируются скомплированные шаблоны twig'a и всевозможные render'ы. Для того чтобы отключить весь этот кеш, нужно сделать следующее.

1. Скопируйте файл /sites/example.settings.local.php в файл /sites/default/settings.local.php

В этом файле уже есть необходимые настройки для отключения кеша

drupal 8 disable caching

2. В файле settings.php раскомментируйте следующие строки, это подключит созданный нами settings.local.php:

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

Это подключит local.settings.php.

3. Проверьте что эта строчка расскомментирована в settings.local.php:

$settings['container_yamls'][] = DRUPAL_ROOT . '/sites/development.services.yml';

Файл development.services.yml уже создан, нам нужно только его подключить.

4. Нужно также проверить что в settings.local.php отключена агрегация CSS и Javascript:

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

5. Также нужно отключить кеширование отрендеренного HTML и кеш модуля Dynamic Pages:

$settings['cache']['bins']['render'] = 'cache.backend.null';
$settings['cache']['bins']['dynamic_page_cache'] = 'cache.backend.null';

Найдите эти строки в settings.local.php и раскомментируйте их.

6. Чтобы Drupal 8 не подхватывал тесты из модулей, нужно поменять значение этой настройки на FALSE:

$settings['extension_discovery_scan_tests'] = FALSE;

7. Теперь в /sites/development.services.yml нужно дописать следующий абзац:

parameters:
  twig.config:
    debug: true
    auto_reload: true
    cache: false

В результате development.services.yml будет выглядеть вот так:

# Local development services.
#
# To activate this feature, follow the instructions at the top of the
# 'example.settings.local.php' file, which sits next to this file.
services:
  cache.backend.null:
    class: Drupal\Core\Cache\NullBackendFactory
  
parameters:
  twig.config:
    debug: true
    auto_reload: true
    cache: false

Очень важно соблюдать переносы строк и отступы в yml файлах, в качестве отступов используйте только 2 пробела и никаких символов табуляции. 

debug: true

Эта строчка отвечает за распечатывание возможных названий для переопределия каждого используемого шаблона для вывода на странице. Иногда это может ломать верстку и вызывать ошибку в некоторых модулях, хотя и очень редко. В остольном это очень удобная вещь для изучения структуры шаблонов в Drupal 8.

8. После этого нужно почистить кеш, что можно сделать через drush:

drush cr

Или запустив скрипт на сайте:

http://yoursite/core/rebuild.php

 

Комментарии

Добавить комментарий

Войти, используя Loginza Google Account Yandex Mail.ru Vkontakte Facebook
(If you're a human, don't change the following field)
Your first name.
(If you're a human, don't change the following field)
Your first name.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.

Здраствуйте, отличный сайт,

Здраствуйте, отличный сайт, подскажите как вывести информацию "количество запросов к бд, потребление памяти , время генерации php" , какую переменую использовать для вывода даной информации, пробовал ставить devel но не вышло вывести только еужную мне информацию.

Здравствуйте, по поводу

Здравствуйте, по поводу запросов к БД можно посмотреть через модуль Devel:

https://www.drupal.org/project/devel

В настойках модуля можно вывести такую информацию.

По поводу времени генерации PHP опять же поможет devel, но нужно будет настроить на сервере xhprof:

http://www.pixelite.co.nz/article/profiling-drupal-7-performance-xhprof-and-devel/

Ну или поставить модуль xhprof:

https://www.drupal.org/project/xhprof