हुक्स (Hooks) को समझना
हुक्स Drupal कोर की सबसिस्टम या जोड़े गए मॉड्यूल्स के साथ मॉड्यूल्स के इंटरैक्शन के तरीकों में से एक हैं। हुक्स का उपयोग विभिन्न कार्यों के लिए किया जाता है, जिनमें टेम्पलेट फाइलों के लिए प्रीप्रोसेस वेरिएबल्स (hook_preprocess()), जानकारी की सूचियों को बदलना (hook_tokens_alter(), hook_views_data_alter()) और फॉर्म में बदलाव करना (hook_form_alter()) आदि शामिल हैं। इस पेज पर Drupal कोर द्वारा प्रदान किए गए सभी हुक्स की सूची है।
मॉड्यूल अपने स्वयं के अतिरिक्त हुक्स भी परिभाषित कर सकते हैं। उदाहरण के लिए, Flag मॉड्यूल hook_flag_options_alter() को परिभाषित करता है, जिसे ऐसे मॉड्यूल्स द्वारा इस्तेमाल किया जा सकता है जो किसी मौजूदा फ्लैग के डिफ़ॉल्ट विकल्पों को बदलना चाहते हैं। अधिकांश मॉड्यूल्स जो हुक्स को परिभाषित करते हैं, वे उनके बारे में डाक्यूमेंटेशन भी प्रदान करते हैं। यह डाक्यूमेंटेशन *.api.php फाइल में होता है।
हुक्स विभिन्न एक्सिक्यूशन फ्लो पॉइंट्स पर ट्रिगर होते हैं, जहाँ Drupal सभी सक्षम मॉड्यूल्स से योगदान ढूंढता है। उदाहरण के लिए, जब कोई यूज़र Drupal साइट पर हेल्प पेज पर जाता है, तो Drupal उस पेज को बनाते समय प्रत्येक मॉड्यूल को अपने बारे में डाक्यूमेंटेशन प्रदान करने का अवसर देता है। यह hook_help() के इम्प्लीमेंटेशन को देखकर किया जाता है। यानी ऐसी फ़ंक्शन, जिसका नाम mymodule_help($route_name, \Drupal\Core\Routing\RouteMatchInterface $route_match) हो, जहाँ "mymodule" मॉड्यूल का नाम है। उदाहरण के लिए, ब्लॉक मॉड्यूल का हेल्प हुक block_help() कहलाता है और नोड मॉड्यूल का हेल्प हुक node_help() कहलाता है। हुक पैरामीटर्स भी प्रदान कर सकता है; hook_help के $route_name और $route_match पैरामीटर्स डेवलपर को यह तय करने की अनुमति देते हैं कि कौन-से पेज पर हेल्प मैसेज दिखाए जाएँगे।
हुक को इवेंट लिस्नर के रूप में भी देखा जा सकता है, इस अर्थ में कि कोई इवेंट एक क्रिया को ट्रिगर करता है। Drupal में, जैसे नोड को डिलीट करना, "hook_node_delete" को ट्रिगर करेगा। अगर आपके मॉड्यूल में hook_node_delete इम्प्लीमेंट किया गया है, तो नोड डिलीट होते ही यह फ़ंक्शन चलेगा। उदाहरण के लिए, आपका फ़ंक्शन सभी नोड्स की गिनती कम करने का हो सकता है, तो नोड डिलीट होने पर यह फ़ंक्शन कॉल होगा और गिनती 1 से घट जाएगी।
यह भी देखें मॉड्यूल हुक्स का अवलोकन Drupal API संदर्भ में। आप इस शानदार लेख को भी देखना चाह सकते हैं, जिसमें सरल PHP संरचनाओं/स्निपेट्स का उपयोग करके Drupal मॉड्यूल/हुक सिस्टम कैसे काम करता है, समझाया गया है।