7.3. Drupal में कैश को अक्षम करना। टेम्पलेट में डिबग जानकारी प्रदर्शित करना।
Drupal 8 पर विकास शुरू करने से पहले, आपको कैश को अक्षम करना होगा। Drupal 7 के विपरीत, Drupal 8 में अब केवल entities, views, और fields ही कैश नहीं होते — बल्कि अब Twig और render टेम्पलेट्स भी कंपाइल होकर कैश किए जाते हैं। इस पूरे कैश को बंद करने के लिए निम्नलिखित चरणों का पालन करें।
1. /sites/example.settings.local.php फ़ाइल को कॉपी करके /sites/default/settings.local.php नाम से सहेजें।
इस फ़ाइल में पहले से ही कैश को अक्षम करने के लिए आवश्यक सेटिंग्स मौजूद हैं।
2. settings.php फ़ाइल में नीचे दी गई पंक्तियों को uncomment करें — इससे हमने जो settings.local.php बनाई है, वह सक्षम हो जाएगी:
if (file_exists(__DIR__ . '/settings.local.php')) {
include __DIR__ . '/settings.local.php';
}
इससे local.settings.php सक्रिय हो जाएगी।
3. settings.local.php में यह पंक्ति uncomment होनी चाहिए, यह सुनिश्चित करें:
$settings['container_yamls'][] = DRUPAL_ROOT . '/sites/development.services.yml';
development.services.yml फ़ाइल पहले से बनी हुई होती है, हमें बस इसे शामिल करना होता है।
4. settings.local.php में यह भी सुनिश्चित करें कि CSS और JavaScript aggregation अक्षम है:
$config['system.performance']['css']['preprocess'] = FALSE;
$config['system.performance']['js']['preprocess'] = FALSE;
5. इसके अलावा, rendered HTML और Dynamic Page Cache मॉड्यूल का कैश भी अक्षम करना आवश्यक है:
$settings['cache']['bins']['render'] = 'cache.backend.null';
$settings['cache']['bins']['dynamic_page_cache'] = 'cache.backend.null';
इन पंक्तियों को settings.local.php में खोजें और uncomment करें।
6. ताकि Drupal मॉड्यूल्स से टेस्ट्स को लोड न करे, इस सेटिंग का मान FALSE कर दें:
$settings['extension_discovery_scan_tests'] = FALSE;
7. अब /sites/development.services.yml फ़ाइल में निम्नलिखित पैरामीटर जोड़ें:
parameters:
twig.config:
debug: true
auto_reload: true
cache: false
इसके परिणामस्वरूप development.services.yml फ़ाइल इस तरह दिखेगी:
# Local development services.
#
# To activate this feature, follow the instructions at the top of the
# 'example.settings.local.php' file, which sits next to this file.
services:
cache.backend.null:
class: Drupal\Core\Cache\NullBackendFactory
parameters:
http.response.debug_cacheability_headers: true
twig.config:
debug: true
auto_reload: true
cache: false
YML फ़ाइलों में पंक्तियों और इंडेंटेशन (indentation) का ध्यान रखना बहुत महत्वपूर्ण है — केवल दो स्पेस का उपयोग करें और टैब का नहीं।
debug: true
यह पंक्ति प्रत्येक उपयोग किए गए टेम्पलेट के लिए ओवरराइड किए जा सकने वाले संभावित नामों को प्रदर्शित करने की अनुमति देती है। कभी-कभी यह कुछ मॉड्यूल्स के लेआउट को बाधित कर सकती है या त्रुटियाँ उत्पन्न कर सकती है, हालाँकि यह बहुत ही दुर्लभ है। Drupal 8 में टेम्पलेट संरचना का अध्ययन करने के लिए यह एक बहुत उपयोगी सुविधा है।
8. इसके बाद, आपको कैश साफ़ करना होगा, जिसे आप Drush के माध्यम से कर सकते हैं:
drush cr
या फिर सीधे साइट पर यह स्क्रिप्ट चलाकर:
http://yoursite/core/rebuild.php