आप यहाँ एक अच्छा, स्पष्ट, निर्धारक उत्तर खोजने नहीं जा रहे हैं। द्वारा और बड़े, आपको अपने मॉड्यूल में घटनाओं को भेजना चाहिए जहां आपको और आपके उपयोगकर्ताओं को उनकी आवश्यकता होती है - यदि आप कहीं भी नहीं सोच सकते हैं कि उनकी आवश्यकता हो सकती है, तो आपको उन्हें भेजने की आवश्यकता नहीं है। Magento अपने आप में इतने सारे स्थानों (नियंत्रक पूर्व / पोस्ट प्रेषण, किसी भी क्रूड ऑपरेशन, आदि) पर इतने सारे घटनाओं का उत्सर्जन करता है कि आपका मॉड्यूल पहले से ही कई उपयोगी घटनाओं को आपके बिना कुछ भी करने के लिए भेज देगा।
चूंकि यह असंतोषजनक है, आप अपने मॉड्यूल को एक घटना भेजना चाहते हैं जब आपका मॉड्यूल कुछ कार्रवाई करता है जो आपके उपयोगकर्ता आइटम जोड़ना चाहते हैं, आइटम को हटा सकते हैं, बदल सकते हैं, या मूल कार्रवाई से अलग कार्रवाई कर सकते हैं। उदाहरण के लिए - Magento में एक visitor_init
घटना है जो ऑटो उत्पन्न घटनाओं के अपने मानक सूट का हिस्सा नहीं है। यह घटना प्रोग्रामर्स को Magento के लॉग्स डेटा से पहले विज़िटर objet को संशोधित करने की अनुमति देता है। ये कोई तरीका नहीं था कि मूल मॉड्यूल डेवलपर्स निर्धारक रूप से जानेंयह वह जगह थी जहां एक घटना को जोड़ने की आवश्यकता थी - यह संभवत: सिस्टम उपयोगकर्ताओं के साथ फीचर अनुरोध और / या साक्षात्कार से आया था। जानें कि आपके उपयोगकर्ता क्या चाहते हैं, और अगर यह संभव नहीं है / व्यावहारिक नहीं है तो उन्हें UI / UX बनाने के लिए उन्हें व्यवस्थापक के माध्यम से करने के लिए, एक इवेंट हुक जोड़ें ताकि एक और प्रोग्रामर उनके लिए यह कर सके।
कम यौन रूप से, घटनाओं को जोड़ना डेवलपर्स (या आपके उपयोगकर्ता या यहां तक कि आपकी टीम) को सक्षम करने के लिए एक सस्ता तरीका हो सकता है, जिसमें कुछ कार्यक्षमता को कोड के रूप में जोड़ा जा सकता है जिसे हर कोई छूने से डरता है। अपने dispatchEvent
कॉल को कोड के बीच में रखें, इसमें हुक लगाएं और आप मूल कार्यक्षेत्र में कोड को परेशान किए बिना अपनी कार्यक्षमता को जोड़ सकते हैं। [संपादक: इसके अलावा आपको कुछ बिंदु पर उस भयानक कोड को फिर से भरना चाहिए]
प्रदर्शन वार, प्रेषण के लिए एक घटना को जोड़ना जहां आप इसे जोड़ते हैं उस पर निर्भर करेगा। जब आप dispatch
ईवेंट कॉल करते हैं , तो Magento को कुछ अतिरिक्त PHP कॉल करने की आवश्यकता होती है, किसी भी कॉन्फ़िगर किए गए पर्यवेक्षकों के लिए कॉन्फ़िगरेशन की क्वेरी करें, और फिर पर्यवेक्षकों को कॉल करें। एक बार किया, यह एक मानक Magento प्रेषण के दायरे में एक सस्ता जोड़ है। हालाँकि, बार-बार किया जाता है, (कहते हैं, हर ब्लॉक रेंडर से पहले) यह जोड़ सकता है। यहाँ अंगूठे का कोई अच्छा नियम नहीं है - हमेशा की तरह सही उत्तर प्रोफ़ाइल है।
अंत में, w / r / t Magento 2, अभी भी कहना जल्दबाजी होगी। उपरोक्त सभी अभी भी लागू होते हैं - हालांकि प्लगइन सिस्टम कुछ झुर्रियों को जोड़ता है। प्लगइन्स, एक दृष्टिकोण से, मैगेंटो में किसी भी सार्वजनिक विधि कॉल के लिए व्यवहार जैसी घटना बनाने का एक तरीका है । सिद्धांत रूप में, यदि आप अपनी कक्षाओं को सही ढंग से डिजाइन कर रहे हैं, तो आपको कभी भी एक घटना की आवश्यकता नहीं होनी चाहिए। हालांकि, व्यवहार में, किसी घटना को संरक्षित या निजी विधि कोड के एक बिट में छोड़ने से मैगेंटो डेवलपर्स के लिए एक लुभावना समाधान हो जाएगा जब विकल्प एक लंबी रिफैक्टिंग प्रक्रिया है। इसके अलावा, विशेष रूप से नामित ईवेंट बनाने से अक्सर आपके मॉड्यूल का उपयोग करने वाले डेवलपर्स के लिए एक मित्रतापूर्ण अनुभव हो सकता है।
उम्मीद है की वो मदद करदे!