डीबग एक्सटेंशन / डेवलपर मोड का उपयोग पर्याप्त सुरक्षा


18

Magento डेवलपर्स के लिए कुछ अच्छे एक्सटेंशन हैं जो आप आमतौर पर लाइव सिस्टम पर नहीं करना चाहते हैं।

आप उन्हें प्रोजेक्ट रिपॉजिटरी में कैसे रख सकते हैं लेकिन लाइव शॉप पर उजागर होने से बचें?

जवाबों:


20

इसे करने की दो अपेक्षाकृत नई तकनीकें हैं:

  • मोडमैन का उपयोग करें ताकि आप अपने आप से नियंत्रित कर सकें कि प्रत्येक वातावरण के लिए क्या तैनात किया जाए। इसका मतलब है आप दौड़ेंmodman deploy [name-of-dev-extension] अपने देव वातावरण पर ही हैं।

  • विभिन्न वातावरणों के लिए अलग - अलग composer.jsonपरिदृश्यों के साथ मैगेंटो-संगीतकार का उपयोग करें । और यहां तक ​​कि आसान तरीका उन एक्सटेंशन को देव-मॉड्यूल के रूप में निर्दिष्ट करना है और फिर --require-devअपने विकास मशीन पर स्विच का उपयोग करके प्रोजेक्ट स्थापित करना है ।


1
+ modman के लिए फिर से तैयार करने के लिए एक :) अच्छा विकल्प
तून वान

क्या आप अधिक बता सकते हैं कि पर्यावरण-विशिष्ट परिनियोजन कैसा दिखेगा? मेरा मतलब है कि मैं अपने द्वारा नियत मॉड्यूल की सूची कहाँ रखूँ? आमतौर पर मेरे पास सभी मॉड्यूल का एक फ़ोल्डर है - और इसलिए फिर से मुझे लाइव और विकास को अलग करना होगा।
एलेक्स

@ एलेक्स: कृपया मेरा संपादन देखें।
user487772 15

@ समय: धन्यवाद! मैंने अब आपके उत्तर को भी संपादित कर दिया।
एलेक्स

@ एलेक्स: धन्यवाद। मुझे यह पता नहीं था :-)
user487772

10

जिन्हें आमतौर पर कॉन्फ़िगरेशन ध्वज के साथ आसानी से अक्षम किया जा सकता है, इसलिए वे तकनीकी रूप से सक्रिय हैं लेकिन कुछ भी नहीं कर रहे हैं। यदि आप इस ध्वज को app/etc/local.xmlअपने लाइव सिस्टम में झूठे के लिए सेट करते हैं, तो आपको ठीक होना चाहिए।


यह एक अच्छा उपाय है जब तक आप अपनी local.xmlफाइल को अपने रेपो में नहीं रखना चाहते । जो एक मामला हो सकता है।
user487772

शानदार जवाब - local.xmlआमतौर पर रेपो में नहीं
एलेक्स


5

ऐसा करने का एक सरल तरीका है, मॉड्यूल को / etc / मॉड्यूल में अक्षम करना, इसे धकेलना, स्थानीय रूप से फ़ाइल को अनदेखा करना और इसे फिर से सक्षम करना।


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

यदि आप फ़ाइल को स्थानीय रूप से अनदेखा करते हैं तो केवल अन्य देवों को ही इसे फिर से सक्षम करना होगा। यह केवल कुछ सेकंड imho लेता है।
तून वान डोरेन

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

सच है, मुझे लगता है कि मैंने इसे अपनी स्थिति से देखा है, मैं आमतौर पर केवल 1 या 2 देव
टूलों को

3

मुझे लगता है कि इससे निपटने का सबसे अच्छा तरीका या तो उन सभी मॉड्यूल्स को स्थानीय कोडपूल में रखना है और अपने लोकल.एक्सएमएल में इस लाइन के साथ सभी स्थानीय मॉड्यूल्स को निष्क्रिय करना है:

    <disable_local_modules>true</disable_local_modules>

या आप अपने लाइव वातावरण पर बैकएंड में "मॉड्यूल मॉड्यूल को अक्षम करें" कर सकते हैं। (सिस्टम -> विन्यास -> उन्नत)। हालाँकि यह पूरी तरह से मॉड्यूल को अक्षम नहीं करता है। लेकिन शायद यह सिर्फ इतना है कि आप इसे छिपाना चाहते हैं।

केवल एक और चीज जिसके बारे में मैं सोच सकता हूं वह कुछ कोड लिखना है जो इसे बंद कर सकते हैं। बस जांचें कि क्या यह डेवलपर मोड में है ( Mage::getIsDeveloperMode()) और फिर मॉड्यूल अक्षम करें। मुझे इसे प्राप्त करने पर कुछ और जानकारी मिली: /programming/6520634/magento-how-to-disable-module-programmatically


सभी 3 समाधान पर्याप्त अच्छे नहीं हैं। निष्क्रिय करने वाले localमॉड्यूल आपको localकोडपूल से अन्य सभी मॉड्यूल को स्थानांतरित करने के लिए बाध्य करेंगे communityऔर भविष्य के सभी एक्सटेंशन के लिए भी करेंगे। मॉड्यूल आउटपुट को अक्षम करना जैसा कि आपने अभी भी कहा था कि एक्सटेंशन आपके स्टोर को धीमा कर रहा है। और तीसरे समाधान के लिए उन संशोधनों की आवश्यकता होगी, जिन्हें एक्सटेंशन (अपडेट्स) से अधिलेखित किया जाएगा।
user487772

2
@ मैं सहमत हूँ, बिल्कुल। इससे निपटने का एक बेहतर तरीका होना चाहिए, विकसित मोड में होने पर मॉड्यूल को अक्षम / सक्षम करने का एक मुख्य कॉन्फ़िगरेशन होना चाहिए।
रिक कुइपर्स

3

मैं आमतौर पर उन्हें अपने परीक्षण वातावरण में डाल देता हूं, लेकिन उन्हें संस्करण नियंत्रण प्रणाली में जांच नहीं करता हूं, उदाहरण के लिए .gitignoreउन्हें कमिट करने के लिए विचार करने के लिए फ़ाइल का उपयोग करके।


ओपी ने रिपॉजिटरी में एक्सटेंशन रखने पर जोर दिया।
user487772

1

एरिक हैनसेन की कल्पना 2011 सम्मेलन में एक स्लाइड है। उन्होंने स्लाइड में एक कोड बताया जो नीचे है (डेवलपर मोड के लिए)

# File : index.php
if(preg_match('/^stage\.|\.dev$/', $_SERVER['HTTP_HOST'])) {
   $_SERVER['MAGE_IS_DEVELOPER_MODE'] = true;
}

यहाँ, एरिक उप-डोमेन के आधार पर एक सेटिंग को सक्षम करता है जिसे आप इसे स्वयं अनुकूलित कर सकते हैं।


विकास के लिए मॉड्यूल के साथ क्या करना है?
ब्रायन रूइज

प्रिय @bryan_ruiz, Magento सिस्टम MAGE_IS_DEVELOPER_MODE की जाँच कर रहा है कि सक्रिय है या नहीं। एलन के लेख की जाँच करें। Magento Developer Mode
Oğuz ikelikdemir

मैं क्या कह रहा हूँ मुझे समझ में नहीं आता कि यह कैसे प्रश्न से संबंधित है। डेवलपर मोड वह उपयोग किए जा रहे मॉड्यूल को सक्षम या अक्षम नहीं करेगा।
ब्रायन रुइज

ब्रायन, जैसा कि मैंने अपनी टिप्पणी में निर्दिष्ट किया है, आप कोड को आपके अनुरोध के अनुसार अनुकूलित कर सकते हैं। बेशक, कच्चा विचार अनुरोध के अनुकूल नहीं है। उदाहरण के लिए, यदि आपने लिखा है कि आपका विस्तार एक पैरामीटर पर निर्भर करता है, तो आप स्निपेट के ऊपर जांच या नियंत्रण कर सकते हैं!
ओउज़ु ikलिक्देमीर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.