logo

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

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

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

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

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

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

स्क्रॉल

शुरुआत करना - संदर्भ जानकारी (Drupal 8)

04/10/2025, by Ivan

Menu

Drupal 8 PHP भाषा की कई उन्नत विशेषताओं और जटिल बाहरी लाइब्रेरीज़ का उपयोग करता है, ताकि तृतीय-पक्ष डेवलपर्स को किसी भी CMS में उपलब्ध सबसे उन्नत API प्रदान किया जा सके। हालाँकि अनुभवी Drupal 7 डेवलपर्स को कुछ बड़े बदलाव दिखाई दे सकते हैं, लेकिन इसकी अधिकांश बुनियादी संरचना परिचित बनी रहती है।

यदि Drupal 8 मॉड्यूल डेवलपर गाइड में प्रस्तुत कोई भी सामग्री आपके लिए नई है, तो नीचे दी गई जानकारी आपकी मदद कर सकती है। हालाँकि, Drupal 8 मॉड्यूल के वर्णन पर जाने के लिए आपको इन सबका गहन ज्ञान आवश्यक नहीं है।

ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (OOP)

OOP, जो शुरुआत में जटिल लग सकता है, अब PHP विकास का मानक तरीका बन गया है।
PHP की सर्वोत्तम प्रथाओं का सामान्य अवलोकन करने के लिए phptherightway.com पढ़ें। Drupal वहाँ बताए गए सभी टूल्स और तरीकों का उपयोग नहीं करता, लेकिन यह PHP और भाषा की कई विशेषताओं का शानदार परिचय प्रदान करता है।

क्लासेज़ और ऑब्जेक्ट्स पर PHP की आधिकारिक डाक्यूमेंटेशन और नीचे दिए गए उपयोगी ट्यूटोरियल्स पढ़कर OOP का ज्ञान ताज़ा करें:

Drupal 8 कुछ सामान्य डिज़ाइन पैटर्न का भी उपयोग करता है, इसलिए उनका सामान्य ज्ञान रखना उपयोगी है:

फ़ैक्टरी पैटर्न और लेट स्टैटिक बाइंडिंग
सॉफ़्टवेयर डिज़ाइन पैटर्न (विकिपीडिया)
डिज़ाइन पैटर्न की नींव (lynda.com)
@todo: उपयोग किए जाने वाले डिज़ाइन पैटर्न पर अतिरिक्त लिंक जोड़ें ...

PHP नेमस्पेस

यदि आप PHP नेमस्पेस अवधारणा से परिचित नहीं हैं, तो इन लेखों को पढ़ें:

अधिकांश मामलों में, Drupal कोड मॉड्यूल के आधार पर नेमस्पेस किया जाता है जिससे वह संबंधित होता है।

उदाहरण: block.module के लिए नेमस्पेस

namespace Drupal\block;

@todo: समझाएँ कि कभी यह Drupal\ होता है और कभी Drupal\\[Controller|Form|Plugin|...] क्यों होता है, और कैसे तय करें कौन-सा उपयोग करना है...

Drupal नेमस्पेस मानकों के बारे में अधिक जानें। Drupal में PSR-4 के उपयोग के बारे में यहाँ देखें: PSR-4 का उपयोग Drupal में। ठीक से कॉन्फ़िगर किया गया कोड एडिटर PHP नेमस्पेस पहचान और ऑटो-कंप्लीशन समर्थन प्रदान करेगा।

डिपेंडेंसी इंजेक्शन

हालाँकि डिपेंडेंसी इंजेक्शन भी एक OOP डिज़ाइन पैटर्न है, हम इसे यहाँ अलग से उल्लेख करते हैं क्योंकि Drupal 8 में इसका व्यापक उपयोग होता है, और कोर APIs तक पहुँच और उनका उपयोग करने के लिए इसका मूल ज्ञान आवश्यक है।

PHP में डिपेंडेंसी इंजेक्शन के बारे में पढ़ें। विशेष रूप से यह लेख क्योंकि Drupal Symfony के सर्विस कंटेनर का उपयोग करता है।

यह भी देखें:

Symfony

Symfony एक PHP फ्रेमवर्क है जिसे Drupal कोड दोहराव को कम करने के लिए उपयोग करता है। Drupal 8 में रूटिंग, सेशन, और सर्विस कंटेनर प्रबंधन के लिए उपयोग किया जाने वाला अधिकांश कोड Symfony 2 (और बाद में Symfony 3) से लिया गया है। यदि आप जानना चाहते हैं कि यह निर्णय क्यों लिया गया, तो मुख्य कमिटर alexpott की इस प्रस्तुति को देखें।

Symfony 2 की पुस्तक पढ़ें और अपने Symfony ज्ञान को ताज़ा करें। यह Drupal को गहराई से समझने के लिए आवश्यक नहीं है, लेकिन Symfony को समझने से आप बेहतर Drupal और PHP डेवलपर बनेंगे। आप Symfony का ग्लॉसरी भी देख सकते हैं।

core/composer.lock देखें ताकि Symfony लाइब्रेरीज़ दिखाई दें। Drupal 8.6.15 से शुरू होकर इसमें ये Symfony और संबंधित लाइब्रेरीज़ शामिल हैं:

...
"symfony/class-loader": "~3.4.0",
"symfony/console": "~3.4.0",
"symfony/dependency-injection": "~3.4.26",
"symfony/event-dispatcher": "~3.4.0",
"symfony/http-foundation": "~3.4.26",
"symfony/http-kernel": "~3.4.14",
"symfony/routing": "~3.4.0",
"symfony/serializer": "~3.4.0",
"symfony/translation": "~3.4.0",
"symfony/validator": "~3.4.0",
"symfony/process": "~3.4.0",
"symfony/polyfill-iconv": "^1.0",
"symfony/yaml": "~3.4.5",
"twig/twig": "^1.38.2",
"doctrine/common": "^2.5",
"doctrine/annotations": "^1.2",
...

एनोटेशन

Drupal 8 PHP एनोटेशन का उपयोग करता है — यानी @docblock टिप्पणियाँ जो आपके कोड में विशेष सिंटैक्स के साथ जोड़ी जाती हैं — ताकि प्लगइन्स का पता लगाया जा सके और निष्पादन योग्य कोड के लिए अतिरिक्त संदर्भ या मेटाडेटा प्रदान किया जा सके। एनोटेशन को Doctrine Annotation Parser (v1.6) द्वारा पढ़ा जाता है और फिर Drupal द्वारा उपयोग किए जाने वाले डेटा में परिवर्तित किया जाता है।

प्लगइन डिस्कवरी के लिए एनोटेशन का उपयोग के बारे में अधिक जानें।

Drupal 8 में सभी एनोटेशन प्रकारों की सूची देखें।

यह भी देखें: PHPDoc (विकिपीडिया)

प्लगइन्स

प्लगइन्स छोटे कार्यात्मक घटक प्रदान करते हैं जिन्हें आसानी से किसी अन्य प्लगइन से बदला जा सकता है। समान कार्य करने वाले प्लगइन्स एक ही प्रकार के माने जाते हैं। उदाहरण के लिए, “फ़ील्ड विजेट” एक प्लगइन प्रकार है, और प्रत्येक विजेट (जैसे टेक्स्ट फ़ील्ड, तारीख फ़ील्ड आदि) को प्लगइन के रूप में लागू किया जाता है।

Drupal 8 में प्लगइन API के बारे में और जानें।

सर्विसेज़

Drupal 8 में, एक सर्विस वह ऑब्जेक्ट है जिसे सर्विस कंटेनर द्वारा प्रबंधित किया जाता है। सर्विस की अवधारणा को कई बार उपयोग की जाने वाली कार्यक्षमता को अलग करने और उसे पुन: प्रयोज्य व प्रतिस्थापनीय बनाने के लिए पेश किया गया था। ये सर्विसेज़ डिपेंडेंसी इंजेक्शन सर्विस कंटेनर में रजिस्टर की जाती हैं।

यह भी देखें: Drupal Geeks के लिए सर्विस कंटेनर

अन्य संसाधन

Drupal 8 के साथ परिचित होने में मदद के लिए नीचे कुछ अतिरिक्त संसाधन दिए गए हैं: