मॉड्यूल की स्थापना रद्द करते समय सभी चर को हटाने का सबसे अच्छा तरीका


9

मैं एक मॉड्यूल लिख रहा हूं जो कई चर (प्रत्येक सामग्री प्रकार के लिए तीन, चार चर) और अन्य लिखता है।

हुक_ऑनस्टीच पर उन्हें हटाने के लिए मुझे किस विधि का उपयोग करना चाहिए?

क्या "mymodule_ *" चर की खोज करना क्वेरी करना सुरक्षित है?

या मुझे सामग्री प्रकारों और खोज वैरिएबल्स के लिए लूप करना चाहिए, इसलिए कई बार variable_del पर कॉल करें?


सामग्री प्रकार के अनुसार नामित चर बनाने के बजाय, आप एक संरचित चर (ओं) का उपयोग कर सकते हैं, जिसमें प्रत्येक सामग्री प्रकार के लिए एक ज्ञात नाम और कुंजियाँ हों?
क्रिस बर्गेस

जवाबों:


10

चर कैश किए गए हैं, इसलिए जब तक आप उस कैश को अमान्य नहीं करते, तब तक मैन्युअल रूप से हटाना ठीक है

db_delete('variable')
  ->condition('name', 'mymodule_%', 'LIKE')
  ->execute();

cache_clear_all('variables', 'cache_bootstrap');

यह क्वेरी ठीक है, बशर्ते कि किसी ने एक मॉड्यूल नहीं बनाया है जो आपके मॉड्यूल नेमस्पेस के भीतर बैठता है - उदाहरण के लिए यदि व्यू ने ऐसा किया है, तो यह व्यू ब्लॉक या व्यू मैसाइट्यूमेंट जैसे मॉड्यूल से संबंधित वैरिएबल को तोड़ देगा। इस उदाहरण के लिए कि शायद एक बड़ा मुद्दा नहीं होगा, लेकिन आप इस विचार को प्राप्त करते हैं :)
क्रिस बर्गेस

1

आप वैरिएबल मॉड्यूल को भी देख सकते हैं जो आपके मॉड्यूल को रजिस्ट्री का उपयोग करने, डिफ़ॉल्ट मानों को कॉन्फ़िगर करने और आगे बढ़ने की अनुमति देता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.