Débugger twig

Source : https://www.drupal.org/docs/8/theming/twig/debugging-twig-templates

Activer via sites/default-ou-soussite/services.yml (en dev seul, pas en prod, et vider le cache):

parameters:
  twig.config:
    debug: true 

enlightenedAvec firebug, vérifier que "Show Comments" est bien actif.
enlightenedAprès toute modif: faire un drush cr (en prod) ou (en dev) utiliser le mode debug de twig

On verra alors dans le code (voir un ex sur cette page) :

  • "<!-- FILE NAME SUGGESTIONS" trié du plus spécifique au moins spécifique, avec un x (à la place des *) pour indiquer le fichier actif.
  • le chemin complet du template qui est affiché est montré avec les <!-- BEGIN OUTPUT from  et "END OUTPUT"

On peux aussi faire ca avec la console.
 

Pour les variables :

enlightenedinstaller kint (composer):

composer require --dev drupal/devel 1.0-alpha1
drush -y en kint

 

Plus à

https://twig.symfony.com/doc/2.x/templates.html

https://www.chapterthree.com/blog/twig-concepts-drupal-8-themes-part-ii

https://www.drupal.org/node/1903374

blushAvec le mode debug de twig, les tests automatiques concernant le rendu HTML échoueront.

  • Les templates twig sont automatiquement recompilés quand on change la source avec auto_reload (default: null ; à true automatiquement si on met le mode débug, donc pas besoin d'y toucher, à moins de ne vouloir que lui et sans le mode debug).
  • cache par défaut à true, mis à false qd mode debug - rallentit bp les choses pour le dev, c'est meiux de le laisser actif

Configurer le cache API Render

Drupal, par défaut (pour optimiser le temps de chargement des pages), gère le cache des blocs et des entitées. Changer les templates twigs qui concernent blocs et entitées ne prendront donc pas de suite effet, à moins de configurer le settings.php (en prod) ou le 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'; 

 

logo drush