मैजेंटो में संगीतकार के ऑटोलैडर को एकीकृत करना


19

तो संगीतकार बहुत बढ़िया है, और संगीतकार के पैकग रिपॉजिटरी में बहुत सारे कोड हैं जो मैगेंटो एक्सटेंशन को लिखना आसान बनाता है।

मैं जिस समस्या का सामना कर रहा हूं, वह है सबसे बेहतर (साफ-सफाई) सेटअप ऑटोलॉडिंग।

डिफ़ॉल्ट संगीतकार पैकेज / विक्रेता के लिए स्थापित हो जाते हैं, और उस निर्देशिका के अंदर एक autoload.php फ़ाइल होती है जो संगीतकार प्रबंधित पैकेज के लिए क्लास लोडिंग सेट करती है।

तो आवश्यकता के लिए सबसे अच्छा तरीका क्या होगा_ऑनलाइन संगीतकार की '/vendor/autoload.php' फ़ाइल? इसके लिए वेबस्टोर और शेल स्क्रिप्ट दोनों पर काम करना होगा। क्या एक पर्यवेक्षक घटना है जिसे मैं आवश्यकता के अनुरूप टैप कर सकता हूं?

चीयर्स!


कोई सुराग नहीं अगर github.com/magento-hackathon/magento-composer-installer यहाँ किसी भी मदद की है। मुझे लगता है कि यह बहुत असंबंधित है। मुझे लगता है कि आप संगीतकार के साथ गैर-मैगेंटो पैकेज स्थापित करने का प्रयास करते हैं और मूल रूप से उन्हें लिब / / में रखना चाहते हैं
एलेक्स

हाँ, यदि आप चुनते हैं तो आप लिबर पर स्थापित करने के लिए संगीतकार सेट कर सकते हैं, लेकिन मैं यदि संभव हो तो संगीतकार लिबास / दाना लिबास को अलग रखना चाहता हूं। इसके अलावा संगीतकार में आपके पास क्लासमैप ऑटोलोडिंग जैसी साफ-सुथरी चीजें हो सकती हैं जो मैज ऑटोलैडर तंत्र के साथ फिट नहीं होती हैं।
आरोन बोनर

1
+1। लगता है कि Mage.php से एक प्रारंभिक घटना प्रेषण की तरह करना चाहिए ...?
कलीनजर्दन

मुझे पता है कि यह एक लंबे समय से पहले उत्तर दिया गया था, लेकिन एक अन्य विकल्प विक्रेता को आपके index.php फ़ाइल (पहले require_once $mageFilenameकहा जाता है) में शामिल है। यह ग्राहक प्रतिष्ठानों के लिए अच्छी तरह से काम करता है, और कोई भी पुनर्लेखन फाइल नहीं लेता है।
जोसेफ ने स्विफ्टऑटर

वैसे आप एक कोर फ़ाइल, index.php हैक कर रहे हैं। जब आप अपग्रेड करते हैं, तो आपको याद रखना होगा कि आपने उस कोड को index.php में जोड़ा था।
आरोन बोनर

जवाबों:


15

Magento के ऑटोलॉडेर में पंजीकृत है Mage.php

यदि आप अपने स्वयं के मॉड्यूल में ऐसा करना चाहते हैं, तो आपको पहले घटना को संभव बनाना चाहिए और वहां ऑटोलैडर की आवश्यकता होनी चाहिए

एलन के विश्लेषण के अनुसार यह होगा resource_get_tablename- लेकिन आपको यह सुनिश्चित करना होगा कि आपका एकमात्र आयोजन एक बार इस घटना को संभाल ले।

त्वरित और गंदा समाधान पैच Mage.php(फ़ाइल की बहुत शुरुआत) के लिए होगा - लेकिन यह कोर को हैक कर रहा है।

इसके अलावा हमारे पास Magento-PSR-0-Autoloader मॉड्यूल है, जो कॉन्फ़िगरेशन के माध्यम से संगीतकार ऑटोलोडिंग को जोड़ने का एक तरीका प्रदान करता है। इसका एक बुनियादी कार्यान्वयन जो resource_get_tablenameघटना का उपयोग करता है ।


धन्यवाद एलेक्स, यह एकदम सही है। मैंने mage.php को पैच कर दिया था, लेकिन वह उत्पादन में नहीं डालना चाहता था। संसाधन _get_tablename देखने से ठीक काम हुआ!
आरोन बोनर

4
विनय के पास एक बढ़िया सुझाव भी था कि वेरेन_ऑटलोड को स्थानीय कोड पूल में डाल दिया जाए और वहां आवश्यक कोड डाल दिया जाए जो महंगी प्रेक्षक घटनाओं और सीधे कोर कोड को पैच करने से बचाए।
आरोन बोनर

1
"उपरोक्त उदाहरण का सरल कार्यान्वयन: github.com/thijssnowcountry/magento1_composer_loader " - @ user2594875
Fabian Schmengler
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.