Magento 2: इंटरसेप्टर उत्पन्न करने से कक्षाओं को छोड़ दें


9

Magento 2 (Beta9 और इसके बाद के संस्करण) में आप इस कमांड को चला सकते हैं और आपके मैगेंटो उदाहरण में सभी वर्गों के लिए सभी php bin/magento setup:di:compileइंटरसेप्टर, कारखाने और प्रॉक्सी (और शायद अन्य) उत्पन्न हो जाएंगे var/generation
यह लाइव वातावरण के लिए उपयोगी है क्योंकि अन्यथा ऊपर उल्लिखित कक्षाएं रनटाइम पर उत्पन्न होंगी जब उन्हें आवश्यकता होती है और प्रदर्शन को प्रभावित कर सकता है।
क्या इस स्क्रिप्ट से कुछ वर्गों को बाहर करने का एक तरीका है ताकि कमांड चलाते समय इंटरसेप्टर नहीं बनाया जाएगा?
एक उदाहरण के रूप में: मैं चाहता हूं कि नियंत्रक के Magento\Backend\Controller\Adminhtml\Dashboard\RefreshStatisticsलिए इंटरसेप्टर उत्पन्न न हो।


आप इसकी आवश्यकता क्यों है?
एंटोन क्रिल

@AntonKril। सवाल पूछना बंद करो और मुझे एक समाधान दो: डी। अब गंभीरता से, मैं कुछ मॉड्यूल निकालने की कोशिश कर रहा हूं और ऐसा करते समय setup:di:compileविफल हो जाता है क्योंकि कुछ मूल कक्षाएं गायब हैं। उन गुम वर्गों का विस्तार करने वाली कक्षाएं अभी भी मौजूद हैं लेकिन उनका उपयोग एप्लिकेशन द्वारा नहीं किया जाता है। और मैं उन्हें हटा नहीं सकता क्योंकि वे उन मॉड्यूल में हैं जिनकी मुझे आवश्यकता है। : नीचे पूर्ण ब्यौरा देखने magento.stackexchange.com/questions/69040/...
मेरियस

जवाबों:


7

कम से कम पिछले संस्करणों में cli से चलने के लिए exclude-patternपैरामीटर है। यह तब समस्या से बचने के लिए जोड़ा गया था जब किसी वर्ग के कैंटीन को सही तरीके से संसाधित नहीं किया जाता है, जैसे कि यह Magento1 कक्षाओं के साथ उदाहरण के लिए होता है। आदेशों और तर्कों को कंसोल कंसोल में परिवर्तित करके परिवर्तित किया जा सकता है।

लेकिन मुझे यकीन नहीं है कि आपका लक्ष्य क्या है, इसलिए मैं यह नहीं कह सकता कि क्या यह उपयोग करने के लिए एक अच्छा समाधान है।


यहाँ मैं करने की कोशिश कर रहा हूँ। मैं कुछ मॉड्यूल निकाल रहा हूं यह देखने के लिए कि मैं कितनी दूर जा सकता हूं। इन मॉड्यूल में से एक Reportमॉड्यूल है। लेकिन रिपोर्ट और बैकएंड मॉड्यूल के बीच तंग युग्मन के कारण बैकएंड मॉड्यूल में अभी भी कक्षाएं हैं जो रिपोर्ट मॉड्यूल कक्षाओं पर निर्भर करती हैं। मुझे उनका उपयोग न करने का एक तरीका मिला, लेकिन चूंकि डीआई कमांड फाइलों को "अनदेखा" कक्षाओं के माध्यम से पार्स करता है और इंटरसेप्टर्स बनाने की कोशिश करता है। लेकिन यह विफल रहता है क्योंकि Magento\Backend\Controller\Adminhtml\Dashboard\RefreshStatisticsउदाहरण के लिए मूल वर्ग मौजूद नहीं है। इसलिए मुझे इसे बाहर करने का एक तरीका चाहिए।
मेरियस

यह संकेत देता है कि कंसोल कमांड एप्रोच में कोई exclude-patternपरम नहीं है । या कम से कम मुझे यह नहीं मिला। मैंने अंदर देखा DiCompileCommand::configure
मेरियस

मैं देख रहा हूं, आप इस PR के संदर्भ में इस कार्यक्षमता के लिए एक समस्या पूछ सकते हैं: github.com/magento/magento2/pull/986 या आप अपने स्थानीय बिल्ड के लिए इसे अस्थायी रूप से जोड़ने के लिए परीक्षण करने के लिए वहां बदलाव का उपयोग करें।
फ्लाइंगमैन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.