logo

एक्स्ट्रा ब्लॉक टाइप्स (EBT) - नया लेआउट बिल्डर अनुभव❗

एक्स्ट्रा ब्लॉक टाइप्स (EBT) - स्टाइलिश, कस्टमाइज़ेबल ब्लॉक टाइप्स: स्लाइडशो, टैब्स, कार्ड्स, एकॉर्डियन्स और कई अन्य। बैकग्राउंड, DOM बॉक्स, जावास्क्रिप्ट प्लगइन्स के लिए बिल्ट-इन सेटिंग्स। आज ही लेआउट बिल्डिंग का भविष्य अनुभव करें।

डेमो EBT मॉड्यूल्स EBT मॉड्यूल्स डाउनलोड करें

❗एक्स्ट्रा पैराग्राफ टाइप्स (EPT) - नया पैराग्राफ्स अनुभव

एक्स्ट्रा पैराग्राफ टाइप्स (EPT) - एनालॉजिकल पैराग्राफ आधारित मॉड्यूल्स का सेट।

डेमो EPT मॉड्यूल्स EPT मॉड्यूल्स डाउनलोड करें

स्क्रॉल
03/10/2025, by Ivan

Menu

Twig टेम्पलेट इंजन एक डिबगिंग टूल प्रदान करता है।

Drupal 8 की реализация भी एक अतिरिक्त टूल जोड़ती है, जो आपको यह पता लगाने की अनुमति देती है कि कौन सा टेम्पलेट मार्कअप आउटपुट कर रहा है

चेतावनी: Twig डिबगिंग सक्षम करने से साइट के कुछ हिस्से टूट सकते हैं, विशेष रूप से Views। इस समस्या को देखें

डिबग सक्षम करें

आप Twig डिबगिंग को sites/default/services.yml में सक्षम करते हैं।

डिबग वेरिएबल को true पर सेट करें। और कैश को साफ करें।

parameters:
  twig.config:
    debug: true
  • यदि services.yml अभी तक मौजूद नहीं है; default.services.yml को services.yml में कॉपी करें।
  • यदि Drupal पहले से स्थापित है, तो आपको अस्थायी रूप से sites/default डायरेक्टरी पर लिखने की अनुमति देने के लिए परमिशन बदलने की आवश्यकता हो सकती है।
  • डायरेक्टरी परमिशन कैसे बदलें
  • एक बार जब services.yml बना और संपादित हो जाए, तो परमिशन वापस बदलें ताकि sites/default डायरेक्टरी लॉक हो जाए

डिबग जांचें

यदि आप Firefox में Firebug का उपयोग कर रहे हैं, तो सुनिश्चित करें कि “Show Comments” सक्षम है, या सीधे पेज सोर्स देखें:

twig-debug

ऑटो रीलोड

Twig टेम्पलेट्स को प्रदर्शन बढ़ाने के लिए डिस्क पर PHP क्लासेस में कंपाइल किया जाता है, लेकिन इसका मतलब है कि डिफ़ॉल्ट रूप से आपके टेम्पलेट्स परिवर्तन के बाद अपडेट नहीं होते। इसे प्रोडक्शन में सक्षम न करें

टेम्पलेट्स को मैन्युअली रिबिल्ड करने के लिए drush cr चलाएँ। डेवलपमेंट के दौरान समय बचाने के लिए, services.yml में twig.config.auto_reload: true सेट करें (डिफ़ॉल्ट रूप से ऑटो रीलोड twig.config.debug: true के साथ सक्षम हो जाता है)।

अधिक जानकारी के लिए देखें https://drupal.org/node/1903374

वेरिएबल्स देखें

वेरिएबल्स देखने का सबसे अच्छा तरीका Xdebug का उपयोग करना है।

यदि आप अन्य non-Xdebug विधियाँ उपयोग करते हैं, तो आपको बहुत अधिक recursive rendering ऑपरेशन्स मिलेंगे, जो अप्रासंगिक जानकारी के पन्नों को जन्म देंगे।

सबसे अनुशंसित दृष्टिकोण है PHPStorm और Xdebug का उपयोग करना, क्योंकि कॉन्फ़िगरेशन सबसे आसान है। हालाँकि लगभग हर IDE में Xdebug प्लगइन होता है। यदि आपको एक मुफ्त और हल्का एडिटर चाहिए, तो Microsoft का VSCode एडिटर एक ओपन-सोर्स विकल्प है, जिसमें PHP और Xdebug के लिए प्लगइन्स हैं।

Xdebug सेटअप करना

Xdebug को सेटअप करना मुश्किल हो सकता है, इसलिए सुनिश्चित करें कि आप अपनी IDE के प्लगइन के निर्देश पढ़ें और Xdebug के दस्तावेज देखें। केवल ऑनलाइन निर्देश या एरर रिपोर्ट पढ़ना बेकार होगा यदि आप गलत environment टार्गेट कर रहे हैं (जैसे Vagrant, VirtualBox या Docker में Xdebug होने पर आपको “remote” कनेक्शन निर्देशों की आवश्यकता होगी: https://xdebug.org/docs/remote)।

Drupal.org विभिन्न एडिटर्स के लिए Xdebug गाइड प्रदान करता है, जिन्हें यहाँ पाया जा सकता है: https://www.drupal.org/docs/develop/development-tools/xdebug-debugger

जब आप Xdebug के साथ काम करते हैं:

Twig टेम्पलेट्स में ब्रेकपॉइंट सेट करने के तीन तरीके हैं ताकि आपकी IDE वेरिएबल्स और PHP एनवायरनमेंट की स्थिति दिखा सके:

  • PHPStorm में नई Twig डिबगिंग फीचर का उपयोग करें (ब्लॉग, डॉक्स)। Drupal मॉड्यूल की आवश्यकता नहीं।
  • Devel मॉड्यूल के साथ
{{ devel_breakpoint() }}
  • Twig Xdebug मॉड्यूल के साथ
{{ breakpoint() }}

यदि आप Xdebug इंस्टॉल नहीं कर सकते ...

... आगे पढ़ें और शुभकामनाएँ, मेरे दोस्त।

{{ dump() }}
{{ dump(variable_name) }}

उपलब्ध वेरिएबल्स की सूची (टॉप-लेवल पर):

{{ dump(_context|keys) }}

यदि आपके पास Devel kint सबमॉड्यूल है (इंस्टॉलेशन के लिए Composer से require-dev का उपयोग करना होगा: composer require --dev drupal/devel 1.0-alpha1 और Drush से इंस्टॉल: drush -y en kint), तो आप उपलब्ध वेरिएबल्स का सुंदर आउटपुट प्राप्त कर सकते हैं:

{{ kint() }}

बहुत संभावना है कि kint आपके ब्राउज़र को फ्रीज़ कर देगा जब रेंडर बहुत बड़ा हो जाएगा। इस स्थिति में, निम्न मॉड्यूल आपके लिए बेहतर काम कर सकते हैं:

या आप Vardumper Twig मॉड्यूल का उपयोग कर सकते हैं, जो twig के लिए Vardumper प्रदान करता है। आप उपलब्ध वेरिएबल्स का सुंदर आउटपुट प्राप्त कर सकते हैं:

{{ dump() }}
{{ dump(variable_name) }}
{{ vardumper() }}
{{ vardumper(variable_name) }}

... लेकिन यह भी सोचें कि Xdebug को काम करने में एक-दो घंटे खर्च करना आपकी ज़िंदगी को बहुत आसान बना देगा, क्योंकि यह आपको बताएगा कि कौन से वेरिएबल्स वास्तव में उपलब्ध हैं।

यदि आप गलत पैरेडाइम का उपयोग कर रहे हैं ...

यदि आप Twig में बहुत कोड लिखते हैं, तो आपको यह सोचना चाहिए कि क्या वास्तव में आपको इस स्तर पर जटिल कार्य करने की आवश्यकता है। उदाहरण: विचार करें कि मौजूदा फील्ड फॉर्मैटर प्लगइन फाइल को एक कस्टम मॉड्यूल में कॉपी करना बेहतर होगा (समान पाथ स्ट्रक्चर का उपयोग करना न भूलें), और केवल annotation (यानी introductory comment, जिसे प्लगइन नाम भी कहते हैं) और PHP/HTML सेटिंग्स बदलें ताकि आप वहाँ वांछित कार्य कर सकें। Drupal 8 में प्लगइन्स सिर्फ अलग-अलग फाइलें हैं, जो खास डायरेक्टरीज में होती हैं और जिनके साथ काम करना बहुत आसान होता है।

अधिक डिबगिंग विकल्प अगले सेक्शन में पाए जा सकते हैं।