जब मॉड्यूल विकास में शामिल (inc) फ़ाइलों का उपयोग करना है


10

मुझे लगता है कि मैं (.module की तुलना में) .inc फ़ाइल के संरचनात्मक अंतर को समझता हूं, लेकिन क्या कोई डिज़ाइन अंतर का वर्णन कर सकता है? मैं ड्रुपल उदाहरण मॉड्यूल को एक .inc फ़ाइल को हुक_मेनू के साथ कॉल करते हुए देखता हूं, या मुझे फ़ंक्शन डिफ़िंट के लिए कॉल .inc फ़ाइल दिखाई देती है।

  • किन परिस्थितियों में .inc फ़ाइल में कोई कोड डालता है? किसी भी सामान्य डिजाइन का कहना है कि कुछ का पालन करें?
  • क्या स्पष्टता के अलावा कोई फायदा है कि कोई एक (या एकाधिक) .inc फ़ाइल का उपयोग क्यों करेगा? प्रदर्शन? वर्ज़निंग?

धन्यवाद!


1
आप करने के लिए स्वीकार किए जाते हैं जवाब तुलना में एक बेहतर स्पष्टीकरण नहीं मिल सकता है इस सवाल मेरी राय में :)
क्लाइव

3
व्यक्तिगत रूप से, अगर मेरे पास एक मॉड है जो कई यूआरएल या जो कुछ भी समर्थन करता है, मैं एक .incप्रति यूआरएल का उपयोग करता हूं । सिर्फ संगठन मैं एक बड़ी .moduleफ़ाइल में यादृच्छिक कार्यों को डंप करने के बजाय अनुमान लगाता हूं । लेकिन @ क्लाइव के पोस्ट संदर्भों के रूप में, यह वास्तव में सिर्फ व्यक्तिगत राय है या आपको क्या करने की आदत है। यहां कोई सही या गलत नहीं है।
au_stan

1
वास्तव में, मैंने संबंधित कार्यों के बड़े हिस्से में बड़े मॉड्यूल को तोड़ने के लिए modulename.preprocess.inc, modulename.node.inc, modulename.menu.inc आदि का उपयोग किया है, लेकिन विकास के बाहर उनका उपयोग करने के लिए किसी भी दृष्टिकोण से एकमात्र वास्तविक कारण संगठन शायद तब होता है जब आपके मॉड्यूल में कुछ बड़े कार्य होते हैं, जिन्हें शायद ही कभी कहा जाता है कि आप अपने php इंजन को लोड होने पर हर बार पार्स नहीं करना चाहते हैं। आप उन्हें तब ला सकते हैं जब जरूरत हो, बहुत कुछ कैसे मेनू कॉलबैक के साथ किया जाता है।
जिमजम्मा

इसके लायक यह है कि मैं अपने हुक कार्यान्वयन और सहायक कार्यों को समूह बनाऊं और एक उपयुक्त नामकरण सम्मेलन (CAPITALS में) का उपयोग करके अपने डॉक्टर ब्लॉकों को वर्गीकृत करूं। इसलिए जैसे ही मैं अपने मॉड्यूल के कोड के माध्यम से स्क्रॉल करता हूं मैं कार्यक्षमता के विभिन्न समूहों के बीच अलगाव देख सकता हूं। मैंने टिप्पणी करने के मानकों में देखा कि क्या कोई प्रणाली पहले से मौजूद है, लेकिन मैं एक देख सकता था।
dbj44 16

जवाबों:


12

सामान्य नियम के रूप में, मैं मॉड्यूल फ़ाइल को अधिक बार आवश्यक कोड (जैसे एक फ़ंक्शन से उपयोग किए जाने वाले सहायक कार्य) में डाल सकता हूं, और ininc कोड को बार-बार उपयोग नहीं किया जाता है या विशिष्ट के लिए उपयोग किया जाता है। पृष्ठों की है।

Drupal 6 के बाद से, कोड स्वचालित रूप से पृष्ठ कॉलबैक वाली फ़ाइलों को लोड करता है, या मेनू आइटम के लिए उपयोग किए जाने वाले फॉर्म बिल्डरों को। उस कारण से, प्रशासनिक पृष्ठों के लिए पृष्ठ कॉलबैक सामान्य रूप से .admin.inc फ़ाइलों पर डाले जाते हैं, जबकि सामान्य कॉल के लिए पृष्ठ कॉलबैक .pages.inc फ़ाइलों पर डाले जाते हैं।

Drupal 7 के बाद से, जब क्लास को त्वरित किया जाता है, तो कक्षाएं युक्त फाइलें स्वचालित रूप से लोड होती हैं। Drupal 7 मॉड्यूल को यह परिभाषित करने की अनुमति देता है कि कौन सी फाइलें उनके हुक परिभाषित हैं ( हुक_हूक_फो () के माध्यम से )। उदाहरण के लिए, system_hook_info () जहां फ़ाइलों के रूप में .tokens.inc फ़ाइलों को परिभाषित करता है hook_token_info(), hook_token_info_alter(), hook_tokens(), और hook_tokens_alter()कार्यान्वयन पाया जा सकता है; इस तरह, उन फ़ाइलों को स्वचालित रूप से लोड किया जाता है जब उन हुकों में से एक की आवश्यकता होती है।
यह आवश्यक होने पर लोड की गई फ़ाइलों में कोड को विभाजित करने की अनुमति देता है, और कोड जो हमेशा Drupal से लोड होता है।

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