डेटाबेस API त्रुटि होने पर एक्सेप्शन (Exception) फेंकता है, जिसे आप डेटाबेस ऑपरेशन्स को try {} catch() {} ब्लॉक्स में लपेटकर पकड़ सकते हैं, जैसा कि इस उदाहरण में दिखाया गया है:
Drupal का डेटाबेस लेयर SQL फ़ंक्शन्स के लिए क्रॉस-डेटाबेस एब्स्ट्रैक्शन प्रदान नहीं करता है। समर्थित डेटाबेस इंजनों के बीच पोर्टेबिलिटी सुनिश्चित करने के लिए, आपके कोड को केवल उन्हीं फ़ंक्शन्स का उपयोग करना चाहिए जो ANSI मानक का हिस्सा माने जाते हैं और सभी उन डेटाबेस में समर्थित हैं जिन्हें Drupal सपोर्ट करता है। नीचे दिया गया सूची अभी भी पूर्ण नहीं है। यहाँ प्रयुक्त सिंटैक्स फ़ॉर्म अनुशंसित है, क्योंकि अन्य विकल्प सभी डेटाबेस में काम नहीं कर सकते।
Drupal 8 की Entity प्रणाली
Entity - यह टाइप किए गए क्लास होते हैं जिनके अपने मेथड्स होते हैं
| Generic methods |
$entity->id() |
- Drupal 7 - एंटिटी साधारण stdClass ऑब्जेक्ट्स थीं।
- Drupal 8 - एंटिटी अब विशेष टाइप किए गए ऑब्जेक्ट्स हैं, और हर एंटिटी टाइप एक क्लास को परिभाषित करता है, जो उस एंटिटी के इंस्टेंसेज़ के लिए उपयोग किया जाएगा।
आवश्यकताएँ
एंटिटी क्लासेज़ को उस मॉड्यूल के Entity namespace में रखा जाना चाहिए, जो एंटिटी टाइप प्रदान करता है, जैसे \Drupal\[module_name]\Entity। इसका मतलब है कि एंटिटी क्लास की PHP फ़ाइलें मॉड्यूल की src/Entity डायरेक्टरी में मिलेंगी।
सामान्य एंटिटी API methods को कवर करता है
- Entity::create()
- Entity::load()
- Entity::save()
- Entity::id()
- Entity::bundle()
- Entity::isNew()
- Entity::label()
अधिक विशिष्ट APIs को अलग अध्यायों में कवर किया जाएगा।
Drupal 8 में, बंडल्स जानकारी रखने वाले कंटेनर का एक प्रकार हैं जो फ़ील्ड डिफ़िनिशन्स या सेटिंग्स रखते हैं। इन्हें कभी-कभी “subtypes” भी कहा जाता है। बंडल्स वैकल्पिक हैं और जानकारी कंटेनर की hierarchy में entity types के नीचे आते हैं।
कंफ़िगरेशन ऑब्जेक्ट्स डेटाबेस में कंफ़िगरेशन सेव करने के लिए Entity API का उपयोग करते हैं।
Content Entity की तुलना में अंतर
- एक्सपोर्ट की सुविधा के लिए CMI API के साथ इंटीग्रेट होता है
- कोई फ़ील्ड्स नहीं होते
- स्कीमा फ़ाइल (Content Entity hook_schema() का उपयोग करता है)
ट्यूटोरियल्स
यह चीटशीट कंटेंट ऑब्जेक्ट्स के लिए अक्सर उपयोग किए जाने वाले methods, classes और interfaces का अवलोकन प्रदान करती है।
![]()
दर्शक वर्ग
यह दस्तावेज़ मुख्य रूप से उन डेवलपर्स के लिए है, जिन्हें ऑब्जेक्ट-ओरिएंटेड PHP, Drupal 6 या Drupal 7 का अनुभव है, और जो Drupal 8 के सिद्धांतों को सीखना चाहते हैं।
Drupal 8 में कंटेंट एंटिटी टाइप बनाने का दस्तावेज़ उपलब्ध विकल्पों की पूरी सूची शामिल करता है।
Drupal 8 में बिना बंडल के कंटेंट टाइप बनाना
इस मामले में हम Drupal 8 का कंटेंट एंटिटी ऑब्जेक्ट बना रहे हैं, जिसके पास कोई बंडल नहीं है।
यह पेज Drupal 8 मॉड्यूल में “Enable by default” कॉन्फ़िगरेशन की कॉपी है। इसे deprecated माना जाना चाहिए।
Drupal 8 के साथ आने वाले नए कॉन्फ़िगरेशन API की वजह से कस्टम कंटेंट टाइप बनाना अब काफ़ी आसान हो गया है।