Magento 2 - किस मामले में हमें इस कमांड को चलाने की आवश्यकता है magento सेटअप: di: संकलन?


12

किस मामले में हमें इस कमांड को चलाने की आवश्यकता है magento setup:di:compile?


एक बार जब आप नए मॉड्यूल स्थापित कर लेते हैं और कुछ निर्देश स्पष्ट करना चाहते हैं
Jaleel

और कुछ भी?
MrTo-Kane

इसके अलावा जब आप उत्पादन मोड पर जाते हैं क्योंकि उस मोड में कोई स्थिर सामग्री उत्पन्न नहीं होती है; यह सब सेpub/static
स्टीव जॉनसन

जवाबों:


8
  • तैनाती के दौरान (यानी जब उत्पादन मोड में एक प्रणाली में परिवर्तन किए गए थे)

    ध्यान दें कि उत्पादन मोड (संस्करण 2.0.5 और पूर्ववर्ती) में आपको "मल्टी-टेनेंट" संकलन का उपयोग करना होगा। 2.0.6 और बाद में तय किया गया।

    bin/magento setup:di:compile-multi-tenant

    देखें: http://devdocs.magento.com/guides/v2.0/config-guide/cli/config-cli-subcommands-compiler.html

  • आप विकास मोड में संकलन का उपयोग भी कर सकते हैं, जिससे साइट को गति मिलनी चाहिए, लेकिन दूसरी ओर यह विकास को धीमा कर देता है, क्योंकि आपको bin/magento setup:di:compileहर उस समय चलाने की आवश्यकता होगी, जिस पर आपने निर्भरता (कंस्ट्रक्टर पैरामीटर) या मौजूदा कक्षाओं की परिवर्तित निर्भरता के साथ नई कक्षाएं जोड़ी हों

    यह वैकल्पिक है, और यह शायद एक अच्छा विचार नहीं है। यदि आप पहले से ही अपने विकास के वातावरण में संकलन चलाते हैं, तो var/diइसे अक्षम करने के लिए फ़ाइलों को हटा दें।


1
setup: di: compile-multi-tenant को हटा दिया गया है
Antonino Bonumore

क्या हम कुछ पुष्टि प्राप्त कर सकते हैं कि क्या var / di फ़ोल्डर ट्रिक को हटाने का काम करता है? यह मेरे लिए प्रतीत नहीं होता है
वाइल्डकार्ड

@ Wildcard27 अगर आप भी निर्देशिका को हटा दें तो क्या होगा var/generation?
फैबियन शेंगलर

@FabianSchmengler ने अभी Actionपरीक्षण करने के लिए बनाया है । - पेज लोड किया, त्रुटि। - हटाए गए diऔर generationफ़ोल्डर, पुनः लोड किए गए, काम करते हैं। - नई निर्भरता जोड़ें, पृष्ठ पुनः लोड करें, त्रुटि। हालाँकि कोई भी diफ़ोल्डर उत्पन्न नहीं होता है। - generationफिर से हटाएं , पुनः लोड करें, काम करता है। निष्कर्ष: निर्भरता जोड़ने के बाद जेनरेशन फ़ोल्डर को हटा दें और आपको चलाना नहीं होगा setup:di:compile। अगर कोई और इस बात की पुष्टि कर सकता है, तो वह बहुत बढ़िया होगा।
वाइल्डकार्ड

1

एक अन्य उत्तर पर मेरी टिप्पणी के अनुसार:

पृष्ठ को पुनः लोड करने से पहलेsetup:di:compile आप केवल var/diऔर var/generationफ़ोल्डरों को हटाकर एक चित्रण जोड़ने के बाद हर बार कमांड चलाने से बच सकते हैं ।

अपने स्वयं के परीक्षण से, Magento var/generationफ़ोल्डर को फिर से बनाएगा , लेकिन var/diफ़ोल्डर setup:di:compileको फिर से चलाने तक नहीं । इसका मतलब है कि आपके पास var/generationहटाने के लिए केवल फ़ोल्डर होना चाहिए ।

मजेदार रूप से पर्याप्त, यह भी साथ काम करता है pub/static/*और setup:static-content:deploy। ऐसा इसलिए है क्योंकि मैगेंटो को सीएलआई के बजाए स्टैटिक कंटेंट को पेज रीलोड द्वारा बनाया गया है, तो जरूरी फाइलों के लिए सिम्लिंक लगता है।

हमारे कार्यालय के लोगों को मैक के लिए डॉकर का उपयोग करते हुए उपरोक्त आदेशों को चलाने में समस्या हो रही थी। फ़ाइल प्रसंस्करण अभी बहुत धीमा था। उपरोक्त चरणों का उपयोग करके, विकास बहुत तेज होना चाहिए।

यह ध्यान रखना सबसे अच्छा है कि उत्पादन या डिफ़ॉल्ट मोड में यह काम नहीं करेगा। यह केवल विकास के लिए है। जैसा कि फैबियन शेंगलर ने उल्लेख किया है, प्रारंभिक पृष्ठ पुनः लोड सामान्य से धीमा होगा, लेकिन रनिंग setup:static-content:deployया `सेटअप: दी: संकलन के रूप में धीमा नहीं होना चाहिए ।

संदर्भ के लिए, मैं संस्करण 2.1.5 चला रहा हूं ।


0

एलन स्टॉर्म के ब्लॉग से लिया गया ।

निर्भरता इंजेक्शन संकलन

शुरू करने के लिए, हमें उस समस्या को समझाना चाहिए जिसे ये कमांड हल करने की कोशिश कर रहे हैं। जब आप उत्पादन के लिए एक Magento 2 प्रणाली जहाज करते हैं, तो आपको निम्नलिखित कमांड चलाने की आवश्यकता होती है

php bin/magento setup:di:compile

यह कमांड आपके सिस्टम में कोड के माध्यम से स्कैन करता है और कई चीजों को प्री-जेनरेट करता है (जो ज्यादातर ऑब्जेक्ट मैनेजर सिस्टम और डिपेंडेंसी इंजेक्शन से संबंधित होती हैं) जब आप डेवलपर मोड में चल रहे होते हैं तो Magento डायनामिक लोड करता है। यह प्रदर्शन और सुरक्षा दोनों है, और इस पर पूरी तरह से चर्चा करना इस लेख के दायरे से परे है।


1
"यह प्रदर्शन और सुरक्षा दोनों है, और इस पर पूरी तरह से चर्चा करना इस लेख के दायरे से परे है।" इसने इसे दूर कर दिया। एलन स्टॉर्म की ब्लैंट
Fabian Schmengler
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.