Het insluiten van een deel van een sjabloon
Veel ontwikkelaars geven er de voorkeur aan om de code van de header/footer in een apart bestand op te slaan en dit bestand vervolgens aan te roepen in page.html.twig.
Proces
Stel dat je het volgende bestand hebt aangemaakt in de map van je thema voor de header:
THEME_NAME/templates/includes/header.html.twig
En nu wil je dit bestand opnemen in:
page.html.twig
Aanbevolen methode
De juiste methode voor Drupal 8-thema’s is het gebruik van Twig-namespaces om de map "templates" van het huidige thema te declareren. Hier is een voorbeeld:
{% include '@THEME_NAME/includes/header.html.twig' %}
Hieronder staat een voorbeeld uit het werkende Drupal.org-thema genaamd Architect.
«@architect» verwijst naar /templates in de map van het werkende thema (architect).
{% include '@architect/includes/header.html.twig' %}
De Twig-namespace wordt in Drupal 8 automatisch aangemaakt bij de installatie van je thema en verwijst naar de map /templates van je thema. Met andere woorden, door «@theme_name» te gebruiken in een Twig-include (zoals hierboven aangegeven) wordt verwezen naar de locatie «your_site.com/themes/theme_name/templates» op je server.
Niet-aanbevolen methode
Een mogelijke (maar niet aanbevolen) methode is het gebruik van onderstaande code om dit bestand in te sluiten.
{# NIET aanbevolen #}
{% include directory ~ '/templates/includes/header.html.twig' %}
De bovenstaande aanpak kan werken, maar zal leiden tot een serverfout bij gebruik met een subthema.
Uitbreiden van de namespace-functionaliteit
De module Components Library biedt een flexibelere en meer geavanceerde organisatie van Twig-sjablonen in Drupal 8, die kan samenwerken met Twig "embed".