टेम्पलेट के हिस्से को शामिल करना
कई डेवलपर्स हेडर / फुटर (ऊपरी / निचले कॉलम) का कोड अलग फ़ाइल में रखना पसंद करते हैं और उस फ़ाइल को page.html.twig में कॉल करते हैं।
प्रक्रिया
मान लीजिए, आपने अपनी थीम की फ़ोल्डर में हेडर के लिए निम्न फ़ाइल बनाई है:
THEME_NAME/templates/includes/header.html.twig
और अब आप इस फ़ाइल को यहाँ शामिल करना चाहते हैं:
page.html.twig
अनुशंसित तरीका
Drupal 8 की थीम्स के लिए सही तरीका यह है कि Twig namespaces का उपयोग करके वर्तमान थीम की templates डायरेक्टरी को घोषित किया जाए। उदाहरण:
{% include '@THEME_NAME/includes/header.html.twig' %}
नीचे Drupal.org की एक कार्यशील थीम Architect का उदाहरण दिया गया है।
«@architect» कार्यशील थीम (architect) की /templates डायरेक्टरी को संदर्भित करता है।
{% include '@architect/includes/header.html.twig' %}
Twig namespace Drupal 8 में आपकी थीम इंस्टॉल होने पर अपने-आप बनता है और आपकी थीम की /templates डायरेक्टरी की ओर इशारा करता है। मूल रूप से, Twig include में «@theme_name» लिखने का मतलब है कि यह आपके सर्वर पर «your_site.com/themes/theme_name/templates» लोकेशन को संदर्भित करेगा।
अनुशंसित नहीं किया जाने वाला तरीका
एक संभव (लेकिन अनुशंसित नहीं) तरीका है कि इस फ़ाइल को शामिल करने के लिए नीचे दिए गए कोड का उपयोग किया जाए:
{# NOT recommended #}
{% include directory ~ '/templates/includes/header.html.twig' %}
ऊपर दिया गया तरीका काम कर सकता है, लेकिन इसे किसी सब-थीम (sub-theme) में उपयोग करने पर सर्वर त्रुटि आ सकती है।
Namespace कार्यक्षमता का विस्तार
कंपोनेंट लाइब्रेरी मॉड्यूल Drupal 8 में Twig टेम्पलेट्स के लिए अधिक लचीला और जटिल संगठन प्रदान करता है, जो Twig "embed" के साथ काम कर सकता है।