Magento 2: न्यूनतम संगीतकार फ़ाइल


9

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

यदि यह सच है, तो क्या एक "न्यूनतम composer.json" फाइल है जो मॉड्यूल डेवलपर्स के लिए अपने मॉड्यूल के साथ उपयोग करने के लिए मैगेंटो 2 उपयोगकर्ताओं को उनके सिस्टम में स्थापित करने के लिए उपयोग करता है?


आप github.com/magento/magento2/pull/1206 पर एक नज़र रखना चाह सकते हैं । इसने मुझे विश्वास दिलाया कि विक्रेता के भीतर रहने के लिए मैग्नेटो मॉड्यूल की अनुमति है।
ल्यूक रॉजर्स

जवाबों:


6

अपडेट करें

ऐसा लगता है कि विकसित शाखा में कुछ नवीनतम परिवर्तनों (7 अक्टूबर) के साथ कई चीजें बदल गईं। अब ऐसा लगता है कि विक्रेता निर्देशिका में रहने वाले मॉड्यूल का समर्थन करना संभव है।

मैंने मॉड्यूल स्थापित करने के दो उदाहरण बनाए। एक जो एप्लिकेशन / कोड में फ़ाइलों को कॉपी करता है और दूसरा जो मॉड्यूल को पंजीकृत करता है जहां वह विक्रेता निर्देशिका में रहता है।

कॉपी रणनीति: https://github.com/mttjohnson/magento2-sample-module-minimal-copy पंजीकरण रणनीति: https://github.com/mttjohnson/magento2-sample-module-minimal-register

विकास के प्रयोजनों के लिए मुझे लगता है कि पंजीकरण रणनीति का उपयोग करना अधिक उपयोगी है क्योंकि मैगेंटो द्वारा चलाई जा रही फाइलों को सीधे संशोधित, परीक्षण किया जा सकता है और फिर मॉड्यूल रेपो में वापस किया जा सकता है।

मूल उत्तर

यदि आपके पास composer.jsonअपने मॉड्यूल कंपोज़र पैकेज के लिए एक फ़ाइल है जिसमें एक प्रकार की magento2-moduleडिफ़ॉल्ट फाइलें शामिल हैं, तो निर्देशिका में एक निर्दिष्ट मैप की गई निर्देशिका में कॉपी की जाएगी app/code

{
    "name": "vendorname/module-name",
    "type": "magento2-module",
    "require": {
        "magento/magento-composer-installer": "*"
    },
    "extra": {
        "map": [
            [
                "module",
                "VendorName/ModuleName"
            ]
        ]
    }
}

इस उदाहरण में कंपोज़र.जेसन कंपोज़र पैकेज के नाम के vendorname/module-nameपरिणामस्वरूप कंपोज़र पैकेज के लिए फाइल में रखा जाएगा vendor/vendorname/module-name

मैगेंटो / मैगेंटो-कंपोजर-इंस्टॉलर पैकेज magento2-moduleमें एक विशेष प्रकार को एक प्लगइन-प्लगइन के रूप में लागू किया जाता है । इसीलिए मैंने इसे आवश्यकता अनुभाग में सूचीबद्ध किया है। यह संगीतकार-प्लगइन है जो फाइलों की प्रतिलिपि को उचित मैगेंटो निर्देशिका में कॉपी करता है ।app/code

इस extra: {map: [["composerDir","MagentoDir"]]}खंड को कंपोज़र-प्लगइन इंस्टॉलर द्वारा संदर्भित किया जाता है ताकि यह पता चल सके कि आपके संगीतकार पैकेज का कौन सा भाग आपके मैग्नेटो डायरेक्टरी स्ट्रक्चर के किस हिस्से में मैप करने के लिए है। उदाहरण में, यह vendor/vendorname/module-name/moduleवहाँ से फ़ाइलों को ले जाएगा और कॉपी करेगा app/code/VendorName/ModuleName


क्या मानचित्र अनुभाग यहाँ सही है? यह मेरी समझ थी कि इस पुल अनुरोध ने इसे बना दिया ताकि आपको Magento मॉड्यूल के साथ संगीतकार का उपयोग करने के लिए प्लगइन की आवश्यकता न हो - यह कि Magento अपने दम पर विक्रेता में दिखेगा। github.com/magento/magento2/pull/1206
एलन स्ट्रॉम

आपके द्वारा उल्लिखित पीआर के तल पर कुछ टिप्पणियों के माध्यम से पढ़ते हुए, ऐसा लगता है कि पीआर को विलय कर दिया गया था लेकिन यह संगीतकार विक्रेता फ़ोल्डर में रहने वाले पूरी तरह से मॉड्यूल का समर्थन नहीं करता है।
22

1

ऐसा लगता है कि इस तरह से कुछ करना चाहिए।

{
    "name": "pulsestorm/module-name",
    "description": "A description of your extension",
    "authors": [
        {
            "name": "Robert Hoffner",
            "email": "rhoffner@example.com"
        }
    ],
    "require": {},
    "autoload": {
        "psr-4": {
            "Package\\Module\\": "src/path/to/Package/Module/Package/Module",
        },        
        "files": [
            "src/path/to/Package/Module/registration.php",
        ]
    }    
}

यहाँ कुंजी ऑटोलैडर अनुभाग है। यह एक PSR-4 ऑटोलैडर सेट करता है जो आपकी कक्षा की फाइलों पर इंगित करता है, और स्वचालित रूप से आपके लोड करता है registration.php। जब कंपोज़र वेंडर में फाइल ड्राप करता है और ऑटोलैड फाइल्स को री-जनरेट करता है, तो Magento को आपके मॉड्यूल को देखने में सक्षम होना चाहिए।

इस के एक साफ साइड इफेक्ट - कोड अब में होने की जरूरत है app/code!


मैं इससे भ्रमित हूं। अपना खुद का मॉड्यूल बनाने के बारे में मैंने जो कुछ भी पढ़ा है उसने मुझे अपनी फाइलें ऐप / कोड में डाल दी हैं। 1) यह कैसे काम करता है और 2) यह साफ-सुथरा क्यों है?
केवंडो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.