Magento 2: तीसरे पक्ष के मॉड्यूल कहाँ जाते हैं?


22

मैंने सिर्फ Magento 2 की पहली आधिकारिक रिलीज़ स्थापित की। मुझे यह जानकर आश्चर्य हुआ कि app/codeफ़ोल्डर चला गया था

app/code

यह वेबसाइट से डाउनलोड किए गए संस्करण और संगीतकार के माध्यम से स्थापित संस्करण दोनों के लिए था । इसके अलावा, जब मैंने मैन्युअल रूप से app/codeफ़ोल्डर बनाने की कोशिश की , और फिर php bin/magento module:enable Pulsestorm_MyModuleएक नमूना मॉड्यूल को सक्षम करने के लिए, मुझे निम्न त्रुटि मिली

 Unknown module(s): 'Pulsestorm_MyModule'

तीसरे पक्ष के मॉड्यूल को कहां रहना चाहिए? यदि उत्तर "एक स्रोत रिपॉजिटरी है और संगीतकार के माध्यम से स्थापित किया गया है", तो एक मॉड्यूल डेवलपर को Magento 2 रिपॉजिटरी में रहने के लिए अपने मॉड्यूल को कैसे व्यवस्थित करना होगा?

जवाबों:


18

अधिमानतः 3PL सब कुछ के साथ विक्रेता निर्देशिका में रहेंगे। हालाँकि ... :) हम सभी जानते हैं कि आमतौर पर कस्टम कोड लगभग हर कस्टम साइट-बिल्ड के लिए लिखा जाता है, और यह IMO ऐप / कोड या फिर भी होता है। हां, आप अभी भी ऐप / कोड से एक मॉड्यूल चला सकते हैं।

सभी मॉड्यूल, स्थान की परवाह किए बिना, एक composer.jsonऔर एक registration.phpफाइल होनी चाहिए जो मॉड्यूल को सिस्टम में लाने के लिए उपयोग की जाती है। आपको etc/modules.xmlफ़ाइल भी चाहिए । यह, तकनीकी रूप से, मॉड्यूल को पंजीकृत करने के लिए सभी लेता है:

$ tree app/code/Alger/
app/code/Alger/
└── Skeleton
    ├── composer.json
    ├── etc
       └── module.xml
    └── registration.php

2 directories, 3 files

मॉड्यूल को ऊपर और चलाने के लिए, आपको अपने नए घटक को पहचानने और लोड करने के लिए सिस्टम को चलाने setup:upgradeऔर फिर चलाने की आवश्यकता है cache:flush:

$ bin/magento module:enable Foo_Bar
$ bin/magento setup:upgrade -q && bin/magento cache:flush -q

अपडेट: सार्वजनिक GitHub रेपो से मॉड्यूल स्थापित करने के लिए दो तरीके: https://gist.github.com/davidalger/77761f13d9752b117f35


मुझे मॉड्यूल की आवश्यकता नहीं है: सक्षम करें जब तक कि मैंने पहले इसे अक्षम नहीं किया था। क्या कोई पैरामीटर है जिसे आप एक्सटेंशन को अक्षम करने के लिए सेट कर सकते हैं?
Eirik

@ ईरिक यदि आप संगीतकार के माध्यम से रेपो से स्थापित कर रहे हैं, तो यह संगीतकार द्वारा किया जाता है। यदि आप इन फ़ाइलों को वहां रखते हैं, तो आपको इसे सक्षम करने की आवश्यकता होती है। कम से कम मुझे पूरा यकीन है कि जीए के बाद मुझे जो सही लगा, जैसा कि मैं यहां बात करने के लिए स्लाइड्स को #phpworld पर स्लाइड कर रहा था :)
davidalger

बहुत बहुत धन्यवाद मैंने अभी तक स्थानीय स्तर पर काम करने के लिए रेपो को आगे नहीं बढ़ाया। बेहतरीन जानकारी।
Eirik

6

एलन, वे अभी भी अंदर जाते हैं app/code। सुनिश्चित करें कि आपके पास registration.phpमोड्यूलनाम फ़ोल्डर में एक है जिसमें निम्नलिखित हैं:

<?php
\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::MODULE,
    'Namespace_Modulename',
    __DIR__
);

तो भागो:

php bin/magento setup:upgrade

बस ताजा Magento 2 CE रिलीज पर परीक्षण किया और ठीक से काम करता है।


शुक्रिया @Eirik, यह वास्तव में था। यह स्पष्ट नहीं था कि Registration.php कुछ ऐसा था जो उस में फिसल गया था, या ऐसा कुछ नहीं होना चाहिए, जो अंतिम रिलीज हो। अब बहुत स्पष्ट है :)
एलन स्टॉर्म
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.