7.3. Désactiver le cache dans Drupal. Afficher les informations de débogage dans le template.
Avant de commencer le développement sous Drupal 8, vous devez désactiver le cache. Contrairement à Drupal 7, dans la version 8, non seulement les entités, vues, champs sont mis en cache, mais aussi les templates Twig compilés et les rendus. Pour désactiver tout ce cache, voici la procédure :
1. Copiez le fichier /sites/example.settings.local.php
vers /sites/default/settings.local.php
Ce fichier contient déjà les réglages nécessaires pour désactiver le cache.
2. Dans le fichier settings.php
, décommentez ces lignes pour inclure settings.local.php
:
if (file_exists(__DIR__ . '/settings.local.php')) {
include __DIR__ . '/settings.local.php';
}
Cela active l’utilisation de settings.local.php
.
3. Vérifiez que cette ligne est décommentée dans settings.local.php
:
$settings['container_yamls'][] = DRUPAL_ROOT . '/sites/development.services.yml';
Le fichier development.services.yml
est déjà créé, il suffit de l’inclure.
4. Assurez-vous aussi que l’agrégation CSS et JavaScript est désactivée dans settings.local.php
:
$config['system.performance']['css']['preprocess'] = FALSE;
$config['system.performance']['js']['preprocess'] = FALSE;
5. Désactivez également le cache des rendus HTML et le cache dynamique :
$settings['cache']['bins']['render'] = 'cache.backend.null';
$settings['cache']['bins']['dynamic_page_cache'] = 'cache.backend.null';
Trouvez et décommentez ces lignes dans settings.local.php
.
6. Pour empêcher Drupal de charger les tests des modules, changez cette valeur en FALSE :
$settings['extension_discovery_scan_tests'] = FALSE;
7. Dans /sites/development.services.yml
, ajoutez le paragraphe suivant :
parameters:
twig.config:
debug: true
auto_reload: true
cache: false
Le fichier development.services.yml
complet ressemblera à :
# Local development services.
#
# Pour activer cette fonctionnalité, suivez les instructions en haut de
# 'example.settings.local.php', qui se trouve à côté de ce fichier.
services:
cache.backend.null:
class: Drupal\Core\Cache\NullBackendFactory
parameters:
http.response.debug_cacheability_headers: true
twig.config:
debug: true
auto_reload: true
cache: false
Il est très important de respecter les sauts de ligne et indentations dans les fichiers yml : utilisez uniquement 2 espaces, jamais de tabulations.
debug: true
Cette ligne permet d’afficher, dans le rendu de la page, les noms des templates utilisables pour la surcharge. Parfois cela peut casser le rendu ou causer des erreurs dans certains modules, mais c’est rare. Dans le cœur Drupal, c’est un outil très pratique pour étudier la structure des templates en Drupal 8.
8. Ensuite, videz le cache, par exemple avec Drush :
drush cr
Ou en lançant ce script sur le site :
http://votresite/core/rebuild.php