कक्षाओं का उपयोग करके मॉड्यूल के निर्माण के लिए सर्वोत्तम अभ्यास


19

मैं अपने मॉड्यूल का निर्माण अब कक्षाओं के रूप में करना शुरू कर रहा हूं, जो आलसी / ऑटो-लोड ड्रुपल 7 में हैं, और मुझे कुछ मॉड्यूल (कंट्रीब या कोर) को देखना अच्छा लगेगा, जो इसका बहुत अच्छा काम कर रहे हैं।

क्या एक वर्ग को हुक के रूप में एकीकृत करने का एक रचनात्मक तरीका है? क्या मैं प्रत्येक फीचर को ctools plugin के रूप में कार्यान्वित करता हूँ?

किसी भी राहगीर को ध्यान देना चाहिए कि डी 7 में ऑटो / आलसी-लोडिंग वर्गों / इंटरफेस के लिए files[]मॉड्यूल .infoफाइलों में नई घोषणाएं हैं : लेखन .info फाइलें (Drupal 7.x)

निम्नलिखित वस्तु-उन्मुख दृष्टिकोण से Drupal समुदाय Drupal प्रोग्रामिंग से प्रेरणा और संविधान (जैसा कि यह था) प्राप्त करने के लिए एक अच्छा पढ़ा है

जवाबों:


16

एक मॉड्यूल Crell द्वारा एक वर्ग नहीं है जो आपको पहले पढ़ना चाहिए।

Drupal 7 में सबसे बड़ा OOP हिस्सा नया डेटाबेस एब्स्ट्रक्शन लेयर (बहुत ही Crell और अन्य द्वारा डिज़ाइन किया गया) है। यह कई पैटर्न को लागू करता है जिसे फिर से इस्तेमाल किया जा सकता है और होना चाहिए।

उदाहरण के लिए:

कुछ है जो अभी भी विवादास्पद है चर्चा की जानकारी छुपा रही है । DBTNG लागू करता है कि वर्ग की संपत्तियों को सुरक्षित और सीधी पहुंच को बंद करके। दूसरी ओर, हमारे पास हुक_क्वेरी_ल्टर () हैं और उन्हें संदर्भ गटर विधियों द्वारा विभिन्न के साथ लगभग स्वतंत्र रूप से बदला जा सकता है ।


महान जवाब, मेरे मॉड्यूल कोड को संरचित करते समय मेरी सोच को अद्यतन करने के लिए महान संसाधनों का टन!
इलेक्ट्रोलक जूल

3

यह एक दिलचस्प सवाल है।

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

हालाँकि कई मॉड्यूल आंतरिक रूप से कक्षाओं का उपयोग करते हैं, और इन कक्षाओं के माध्यम से कार्यक्षमता को उजागर करते हैं। सबसे स्पष्ट उदाहरण दृश्य है। ताकि देखने के लिए एक अच्छी जगह हो सके। हालाँकि इस बात से अवगत रहें कि कई मॉड्यूल अपने तरीके से कक्षाओं का उपयोग करते हैं, इसलिए जो आप विचारों को देखकर सीखते हैं वह हमेशा लागू नहीं हो सकता है।


अंतर्दृष्टि के लिए धन्यवाद, और मुझे लगता है कि मैं अभी भी Drupal के भीतर ठीक से रजिस्टर करने के लिए हुक_फंक्शंस की आवश्यकता होगी, लेकिन मैं कैसे मॉड्यूल इसे लागू करने पर उत्सुक हूँ। मैं विचार मॉड्यूल पर एक नज़र डालूंगा (और उम्मीद नहीं खोई गई) - यदि आपको कोई और अलग-थलग मामले / आपके द्वारा
खोजे गए

2

एंटिटी एपीआई (कंट्रिब मॉड्यूल) आपको अपनी प्रत्येक इकाई प्रकार के लिए "एंटिटी क्लास" घोषित करने की अनुमति देता है, इसलिए आपकी इकाई से संबंधित सभी कोड (क्रिएट, लोड, सेव, एक्सेस आदि) एक क्लास में जा सकते हैं (देखें ऑर्गेनिक कैसे समूह इसे करते हैं, उदाहरण के लिए)।

उस ने कहा, इसे ज़्यादा मत करो। ctools plugins एक अच्छी बात है जब आपको उनकी आवश्यकता होती है (आप अगले दृश्य, पैनल या नियम लिख रहे हैं), लेकिन वैचारिक शुद्धता के लिए हर जगह सिर्फ कक्षाओं का उपयोग करना आपको बहुत अच्छा नहीं करेगा।

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