अलग-अलग संस्थाएं उत्पन्न करने के अलग-अलग कारण हैं:
प्रॉक्सी - इसका उपयोग आलसी-लोडिंग के लिए किया जाता है। लेकिन प्रत्येक प्रकार के लिए अलग-अलग प्रॉक्सी वर्ग की आवश्यकता होती है ताकि डेवलपर्स के लिए उन्हें मैन्युअल रूप से लिखना कष्टप्रद हो जाए इसलिए मैगेंटो उन्हें उत्पन्न करता है। यो केवल di.xml में प्रॉक्सी के संदर्भ पाएंगे
फैक्ट्री - एक ऐसा वर्ग है जिसका उपयोग गैर-इंजेक्शन (निकाय) बनाने के लिए किया जाता है। प्रॉक्सी के रूप में भी। PHP में अभी तक जेनेरिक नहीं है, इसलिए हम डेवलपर-बायलरप्लेट कोड बनाने के लिए ऑटो-जेनरेट नहीं करते हैं। आप Magento कोड भर में कारखानों के साथ बातचीत करेंगे। सबसे शायद आपको अपनी संस्थाओं के लिए अपने कारखानों की आवश्यकता होगी। बस निर्माता में संबंधित कारखाने के लिए पूछें और यह अगले रन पर या संकलक चलाने के दौरान उत्पन्न होगा।
इंटरसेप्टर - एक बुनियादी ढांचा वर्ग है, जिसका उपयोग इंटरसेप्शन घटक द्वारा किया जाता है। फ्लाइंगमैन और फिल विंकल ने देखा कि आपको किसी भी तरह उनके साथ बातचीत नहीं करनी चाहिए।
अन्य इकाइयाँ उत्पन्न होती हैं (जैसे ऑब्जेक्ट ग्राफ़ प्रोफाइलिंग के लिए लकड़हारा) लेकिन ये 3 सबसे महत्वपूर्ण हैं।
Magento 2 भी संकलित किया जा सकता है। संकलन डीआई और अवरोधन को तेज बनाता है। सभी कोड जनरेशन और कंपटीशन देव / टूल्स / मैगनेटो / टूल्स / डीआई / कंपाइलर.php के साथ किया जा सकता है
Magento\Cms\Block\Block
कंस्ट्रक्टर में एक उदाहरण का\Magento\Cms\Model\BlockFactory
उपयोग किया जाता है। वह वर्ग कोड में कहीं नहीं है। यह केवल में पाया जाता हैvar/generation
। इसलिए यदि मैं एक समान मॉड्यूल कर रहा हूं तो मुझे एक समान वर्ग का उपयोग करना पड़ सकता है।