logo

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

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

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

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

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

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

स्क्रॉल

Drupal 8 में कॉन्फ़िगरेशन का संग्रहण

03/10/2025, by Ivan

Menu

डिफ़ॉल्ट रूप से Drupal 8 में कॉन्फ़िगरेशन की जानकारी डेटाबेस में संग्रहीत होती है।

कॉन्फ़िगरेशन फ़ाइल फ़ॉर्मेट (YAML)

एक्सटेंशन (मॉड्यूल, थीम और प्रोफ़ाइल) YAML फ़ाइलों में कॉन्फ़िगरेशन डेटा प्रदान करते हैं।

यहाँ एक कॉन्फ़िगरेशन फ़ाइल का उदाहरण है:

some_string: 'Woo kittens!'
some_int: 42
some_bool: true

कॉन्फ़िगरेशन nested भी हो सकता है। उदाहरण:

name: thumbnail
label: 'Thumbnail (100x100)'
effects:
  1cfec298-8620-4749-b100-ccb6c4500779:
    id: image_scale
    data:
      width: 100
      height: 100
      upscale: true
    weight: 0
    uuid: 1cfec298-8620-4749-b100-ccb6c4500779

कॉन्फ़िगरेशन स्कीमा

कॉन्फ़िगरेशन का एक स्कीमा होता है। इसका विवरण कॉन्फ़िगरेशन स्कीमा/मेटाडेटा डॉक्यूमेंटेशन में दिया गया है।

एक्सटेंशन के लिए डिफ़ॉल्ट कॉन्फ़िगरेशन

एक्सटेंशन (मॉड्यूल, थीम या प्रोफ़ाइल), जो अपनी कॉन्फ़िगरेशन के लिए डिफ़ॉल्ट मान प्रदान करता है, उसे अपनी config/install सब-डायरेक्टरी में YAML फ़ाइलों में यह कॉन्फ़िगरेशन रखना चाहिए।

यदि एक्सटेंशन को केवल बेसिक simple configuration पैरामीटर्स चाहिए, तो सभी डिफ़ॉल्ट सेटिंग्स को एक ही फ़ाइल modulename.settings.yml में रखा जा सकता है। अधिक जटिल सेटिंग्स के लिए कॉन्फ़िगरेशन को कई फ़ाइलों में विभाजित किया जा सकता है। प्रत्येक कॉन्फ़िगरेशन ऑब्जेक्ट को अपनी YAML फ़ाइल में होना चाहिए और यदि मॉड्यूल अपनी कॉन्फ़िगरेशन लिखता है तो इन्हें उत्पन्न किया जाएगा (इन्हें मैन्युअली लिखने की कोशिश न करें)।

यदि आपको ऐसे कॉन्फ़िगरेशन के लिए डिफ़ॉल्ट मान प्रदान करने की आवश्यकता है जो dynamic मान की मांग करता है (जो modulename.settings.yml में सेट नहीं किया जा सकता), तो इसे hook_install() में करें। उदाहरण:

/**
 * Implements hook_install().
 */
function modulename_install() {
  // ऐसे कॉन्फ़िग के लिए डिफ़ॉल्ट मान सेट करें जिन्हें dynamic मान चाहिए।
  \Drupal::configFactory()->getEditable('modulename.settings')
    ->set('default_from_address', \Drupal::config('system.site')->get('mail'))
    ->save();
}

एक्सटेंशन के लिए वैकल्पिक कॉन्फ़िगरेशन

एक्सटेंशन (मॉड्यूल या थीम) के वैकल्पिक कॉन्फ़िगरेशन तत्व config/optional सब-डायरेक्टरी में संग्रहीत होते हैं।

ये कॉन्फ़िगरेशन तत्व किसी ऐसी dependency पर आधारित होते हैं, जिस पर एक्सटेंशन सीधे निर्भर नहीं करता, इसलिए ये केवल तभी इंस्टॉल होते हैं जब उनकी सभी dependencies पूरी हों।

उदाहरण: यदि मॉड्यूल A में वैकल्पिक कॉन्फ़िगरेशन है जिसके लिए मॉड्यूल B की आवश्यकता है, और यदि पहले मॉड्यूल A इंस्टॉल होता है और बाद में मॉड्यूल B, तो उस समय मॉड्यूल A की config/optional डायरेक्टरी को dependencies के लिए स्कैन किया जाएगा और कॉन्फ़िगरेशन तभी इंस्टॉल होगा। यदि मॉड्यूल B कभी इंस्टॉल नहीं होता, तो अतिरिक्त कॉन्फ़िगरेशन भी इंस्टॉल नहीं होगा।

Active कॉन्फ़िगरेशन स्टोरेज

डिफ़ॉल्ट रूप से Drupal 8 active configuration को डेटाबेस में सेव करता है ताकि प्रदर्शन (performance) और scalability बेहतर हो सके। देखें «डिफ़ॉल्ट Active कॉन्फ़िगरेशन» जिसे फ़ाइल स्टोरेज से DB स्टोरेज में बदला गया है।

YAML से डेटाबेस में कॉन्फ़िगरेशन अपडेट करना

डेवलपमेंट के दौरान यदि आपको YAML से डेटाबेस में कॉन्फ़िगरेशन अपडेट करना हो, तो आप drush config-import (cim) कमांड का उपयोग कर सकते हैं।
आप settings.php में परिभाषित सक्रिय कॉन्फ़िगरेशन फ़ोल्डर (उदाहरण: sites/default/files/config_6dh1U_2YKLGrrh5oLxAgobbledygook/sync) में YAML फ़ाइल एडिट करते हैं, और फिर drush cim चलाते हैं। कैश साफ़ करें (drush cr), ताकि बदलाव दिखाई दें।
यदि आप YAML फ़ाइल में सेटिंग्स से संतुष्ट हैं, तो उन्हें अपने मॉड्यूल या थीम में कॉपी कर सकते हैं।