मैं Magento में एक सरल 'हैलो वर्ल्ड' मॉड्यूल कैसे बनाऊं?


305

Magento में निम्नलिखित को कैसे पूरा किया जा सकता है?

  • नियंत्रक / दृश्य / मॉडल दृष्टिकोण का उपयोग करके "हैलो वर्ल्ड" संदेश प्रदर्शित करें। इसलिए, अगर मैं इसके लिए गया था http://example.com/myControllerतो वह 'हैलो वर्ल्ड' स्ट्रिंग दिखाएगा। मेरी वेबसाइट के टेम्पलेट के भीतर इस स्ट्रिंग को दिखाने में सक्षम होने के नाते (उदाहरण के लिए, हेडर, फुटर, आदि) एक बोनस होगा।

  • मैं इस नियंत्रक (या यदि आवश्यक हो तो एक नया नियंत्रक) के लिए एक विधि कैसे जोड़ूं, जो एक मॉडल के साथ बातचीत करता है, और क्वेरी करता है Select * FROM articles where id='10'और id, title, contentनियंत्रक को पंक्ति (कॉलम युक्त ) लौटाता है ? और फिर एक दृश्य को शामिल करने के लिए नियंत्रक का उपयोग करें, जो इस पंक्ति को प्रदर्शित करेगा। इसलिए http://example.com/myController/show_row(या कुछ इसी तरह) जाने से एक दृश्य में पंक्ति प्रदर्शित होगी। (फैंसी होने की जरूरत नहीं है, बस एक echo $row->id;या कुछ इसी तरह काम करेगा।)

Magento के कोड संरचना के बारे में कोई अन्य जानकारी भी बहुत सहायक होगी।


6
ऐसा लगता है कि सिस्टम आपके इनाम को याद नहीं कर रहा है।
एलन स्टॉर्म

2
मैं इनाम अभी तक नहीं खोल सकता, क्योंकि यह 48 घंटे पुराना नहीं है .. लेकिन मैं इसे जल्द से जल्द खोलूंगा और इसे सर्वश्रेष्ठ उत्तर के लिए पुरस्कार दूंगा
क्लिक करें

आह, मुझे नहीं पता था कि पुरानी पोस्ट, माफी के लिए ही लागू किया जाता है।
एलन स्टॉर्म

3
एक बच्चे के रूप में, वह हमेशा जादूगरों के लिए एक गुरुत्वाकर्षण था; उसका कोड उसी तरह काम करता है।
177 बजे vol7ron

जवाबों:


539

और सबसे पहले, मैं अत्यधिक अनुशंसा करता हूं कि आप PHP वास्तुकार से पीडीएफ / ई-बुक खरीदें । यह यूएस $ 20 है, लेकिन एकमात्र सीधा है "यहां बताया गया है कि मैगेंटो कैसे काम करता है" संसाधन मैं खोजने में सक्षम रहा हूं। मैंने अपनी वेबसाइट पर Magento के ट्यूटोरियल्स लिखना भी शुरू कर दिया है ।

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

तीसरा, मैगेंटो एमवीसी रूबी ऑन रेल्स , Django , कोडइग्निटर , केकपीएचपी आदि से बहुत अलग है । MVC मॉडल जो इन दिनों PHP डेवलपर्स के साथ लोकप्रिय है। मुझे लगता है कि यह Zend मॉडल पर आधारित है , और पूरी बात बहुत जावा OOP जैसी है। वहाँ दो नियंत्रकों आप के बारे में चिंतित होने की जरूरत है। मॉड्यूल / फ्रंटनेम नियंत्रक, और फिर एमवीसी नियंत्रक।

चौथा, Magento एप्लिकेशन को उसी मॉड्यूल सिस्टम का उपयोग करके बनाया गया है जिसका आप उपयोग कर रहे हैं, इसलिए कोर कोड के आसपास पोकिंग एक उपयोगी शिक्षण रणनीति है। इसके अलावा, आप Magento के साथ क्या कर रहे हैं, इसका एक बहुत मौजूदा वर्गों से आगे निकल रहा है । मैं जो यहां कवर कर रहा हूं वह नई कार्यक्षमता पैदा कर रहा है, ओवरराइडिंग नहीं। इसे ध्यान में रखें जब आप कोड के नमूने देख रहे हों।

मैं आपके पहले प्रश्न के साथ शुरू करने जा रहा हूं, जो आपको दिखाता है कि किसी विशिष्ट URL पर प्रतिक्रिया देने के लिए नियंत्रक / राउटर को कैसे सेटअप किया जाए। यह एक छोटा उपन्यास होगा। मेरे पास बाद में मॉडल / टेम्पलेट संबंधित विषयों के लिए समय हो सकता है, लेकिन अभी के लिए, मैं नहीं। हालाँकि, मैं संक्षेप में आपके SQL प्रश्न पर बात करूँगा।

Magento एक EAV डेटाबेस आर्किटेक्चर का उपयोग करता है । जब भी संभव हो, आपके द्वारा आवश्यक जानकारी प्राप्त करने के लिए सिस्टम द्वारा प्रदान की जाने वाली मॉडल ऑब्जेक्ट का उपयोग करने का प्रयास करें। मुझे पता है कि यह एसक्यूएल तालिकाओं में है, लेकिन कच्चे एसक्यूएल प्रश्नों का उपयोग करके डेटा को हथियाने के बारे में सोचना अच्छा नहीं है, या आप पागल हो जाएंगे।

अंतिम अस्वीकरण मैं लगभग दो या तीन सप्ताह से मैगनेटो का उपयोग कर रहा हूं, इसलिए कैवेट एम्प्टर। यह मेरे सिर में सीधे जाने के लिए एक अभ्यास है जितना कि स्टैक ओवरफ्लो में मदद करना है।

एक मॉड्यूल बनाएँ

Magento के सभी परिवर्धन और अनुकूलन मॉड्यूल के माध्यम से किए जाते हैं। तो, पहली बात यह है कि आपको एक नया मॉड्यूल बनाना होगा। app/modulesनिम्नानुसार एक XML फ़ाइल बनाएँ

cd /path/to/store/app
touch etc/modules/MyCompanyName_HelloWorld.xml
<?xml version="1.0"?>
<config>
     <modules>
        <MyCompanyName_HelloWorld>
            <active>true</active>
            <codePool>local</codePool>
        </MyCompanyName_HelloWorld>
     </modules>
</config>

MyCompanyName आपके संशोधनों के लिए एक अद्वितीय नामस्थान है, इसमें आपकी कंपनी का नाम नहीं है, लेकिन यह सिफारिश की गई है कि प्रत्येक मैगेंटो के लिए कन्वेंशन। HelloWorldआपके मॉड्यूल का नाम है।

एप्लिकेशन कैश साफ़ करें

अब जब मॉड्यूल फ़ाइल चालू है, तो हमें Magento को इसके बारे में जानने की ज़रूरत होगी (और हमारे काम की जाँच करें)। एडमिन एप्लिकेशन में

  1. सिस्टम-> कैश प्रबंधन पर जाएं
  2. सभी कैश मेनू से ताज़ा करें चुनें
  3. कैश सेटिंग्स सहेजें पर क्लिक करें

अब, हम यह सुनिश्चित करते हैं कि Magento मॉड्यूल के बारे में जानता है

  1. सिस्टम-> कॉन्फ़िगरेशन पर जाएं
  2. उन्नत पर क्लिक करें
  3. "मॉड्यूल को अक्षम करें" सेटिंग बॉक्स में, "MyCompanyName_HelloWorld" नाम के अपने नए मॉड्यूल की तलाश करें

यदि आप प्रदर्शन धीमा कर सकते हैं, तो आप विकसित / सीखते समय एप्लिकेशन कैश को बंद करना चाह सकते हैं। कुछ भी ज्यादा निराशाजनक नहीं है फिर कैश को साफ करना और यह सोचना कि आपके बदलाव क्यों नहीं दिख रहे हैं।

निर्देशिका संरचना सेट करें

अगला, हमें मॉड्यूल के लिए निर्देशिका संरचना सेटअप करना होगा। आपको इन सभी निर्देशिकाओं की आवश्यकता नहीं होगी, लेकिन इन सभी को अब स्थापित करने में कोई बुराई नहीं है।

mkdir -p app/code/local/MyCompanyName/HelloWorld/Block
mkdir -p app/code/local/MyCompanyName/HelloWorld/controllers
mkdir -p app/code/local/MyCompanyName/HelloWorld/Model
mkdir -p app/code/local/MyCompanyName/HelloWorld/Helper
mkdir -p app/code/local/MyCompanyName/HelloWorld/etc
mkdir -p app/code/local/MyCompanyName/HelloWorld/sql

और एक कॉन्फ़िगरेशन फ़ाइल जोड़ें

touch app/code/local/MyCompanyName/HelloWorld/etc/config.xml

और कॉन्फ़िगरेशन फ़ाइल के अंदर, निम्नलिखित जोड़ें, जो अनिवार्य रूप से एक "रिक्त" कॉन्फ़िगरेशन है।

<?xml version="1.0"?>
<config>
    <modules>
        <MyCompanyName_HelloWorld>
            <version>0.1.0</version>
        </MyCompanyName_HelloWorld>
    </modules>
</config>

चीजों को सक्रिय करते हुए, यह कॉन्फ़िगरेशन फ़ाइल आपको Magento को बताएगी कि आप किस कोड को चलाना चाहते हैं।

राउटर सेट करना

अगला, हमें मॉड्यूल के राउटर को सेटअप करने की आवश्यकता है। यह सिस्टम को बताएगा कि हम किसी भी URL को किस रूप में संभाल रहे हैं

http://example.com/magento/index.php/helloworld

इसलिए, अपनी कॉन्फ़िगरेशन फ़ाइल में, निम्न अनुभाग जोड़ें।

<config>
<!-- ... -->
    <frontend>
        <routers>
            <!-- the <helloworld> tagname appears to be arbitrary, but by
            convention is should match the frontName tag below-->
            <helloworld>
                <use>standard</use>
                <args>
                    <module>MyCompanyName_HelloWorld</module>
                    <frontName>helloworld</frontName>
                </args>
            </helloworld>
        </routers>
    </frontend>
<!-- ... -->
</config>

आप यहाँ क्या कह रहे हैं "किसी भी URL के साथ helloworld का नाम ...

http://example.com/magento/index.php/helloworld

फ्रंटनेम नियंत्रक MyCompanyName_HelloWorld का उपयोग करना चाहिए।

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

touch app/code/local/MyCompanyName/HelloWorld/controllers/IndexController.php

अब पेज लोड करने का प्रयास करें। प्रगति! 404 के बजाय, आपको PHP / Magento अपवाद मिलेगा

Controller file was loaded but class does not exist

इसलिए, हमारे द्वारा अभी बनाई गई फ़ाइल खोलें, और निम्न कोड में पेस्ट करें। वर्ग का नाम आपके राउटर में आपके द्वारा प्रदान किए गए नाम के आधार पर होना चाहिए।

<?php
class MyCompanyName_HelloWorld_IndexController extends Mage_Core_Controller_Front_Action{
    public function indexAction(){
        echo "We're echoing just to show that this is what's called, normally you'd have some kind of redirect going on here";
    }
}

हमने जो सेटअप किया है वह मॉड्यूल / फ्रंटनेम नियंत्रक है। यह डिफ़ॉल्ट नियंत्रक और मॉड्यूल की डिफ़ॉल्ट कार्रवाई है। यदि आप नियंत्रकों या क्रियाओं को जोड़ना चाहते हैं, तो आपको यह याद रखना होगा कि Magento URL का पहला भाग पेड़ अपरिवर्तनीय है, वे हमेशा इस तरह से रहेंगेhttp://example.com/magento/index.php/frontName/controllerName/actionName

तो अगर आप इस url का मिलान करना चाहते हैं

http://example.com/magento/index.php/helloworld/foo

आपके पास एक FooController होना चाहिए, जिसे आप इस तरह से कर सकते हैं:

touch app/code/local/MyCompanyName/HelloWorld/controllers/FooController.php
<?php
class MyCompanyName_HelloWorld_FooController extends Mage_Core_Controller_Front_Action{
    public function indexAction(){
        echo 'Foo Index Action';
    }

    public function addAction(){
        echo 'Foo add Action';
    }

    public function deleteAction(){
        echo 'Foo delete Action';
    }
}

कृपया ध्यान दें कि डिफ़ॉल्ट कंट्रोलर इंडेक्सकंट्रोलर और डिफॉल्ट एक्शन इंडेक्सएक्शन इम्प्लिमेंट कर सकते हैं लेकिन अगर इसके बाद कुछ आता है तो स्पष्ट होना चाहिए। तो http://example.com/magento/index.php/helloworld/fooनियंत्रक FooController और कार्रवाई indexAction से मेल खाएगा और IndexController की कार्रवाई fooAction नहीं। यदि आप नियंत्रक इंडेक्सकंट्रोलर में एक फ़्यूएशन रखना चाहते हैं, तो आपको इस नियंत्रक को स्पष्ट रूप से इस तरह से कॉल करना होगा: http://example.com/magento/index.php/helloworld/index/fooक्योंकि url का दूसरा भाग है और हमेशा कंट्रोलरनाम होगा। यह व्यवहार मैगेंटो में बंडल Zend फ्रेमवर्क की एक विरासत है।

अब आपको निम्नलिखित URL को हिट करने और अपने इको स्टेटमेंट के परिणाम देखने में सक्षम होना चाहिए

http://example.com/magento/index.php/helloworld/foo
http://example.com/magento/index.php/helloworld/foo/add
http://example.com/magento/index.php/helloworld/foo/delete

तो, यह आपको एक बुनियादी विचार देना चाहिए कि मैगेंटो एक नियंत्रक को कैसे भेजता है। यहाँ से मैंने मौजूदा Magento कंट्रोलर क्लासेस में poke की सिफारिश की है कि यह देखने के लिए कि कैसे मॉडल्स और टेम्पलेट / लेआउट सिस्टम का उपयोग किया जाना चाहिए।


4
धन्यवाद, यह बहुत मददगार है। कृपया मॉडल / डेटाबेस और विचारों का उपयोग करने के बारे में कुछ जानकारी जोड़ने पर विचार करें ताकि आपका उत्तर पूरा हो सके
क्लिक करें

7
सुनिश्चित करें कि एप्लिकेशन / कोड / स्थानीय / MyCompanyName / HelloWorld / etc / config.xml में वही मामला है जो xml आदि / मॉड्यूल में स्थित है (MyCompanyName_HelloWorld नहीं mycompanyname_mowoworld) अन्यथा बैकएंड में प्रविष्टियाँ होंगी!
मोआक

8
मुझे एलन के सही उत्तर पर बस छोटी सी टिप्पणी मिली है: "जो हमने अभी सेटअप किया है वह मॉड्यूल / फ्रंटनेम नियंत्रक है। यह एमवीसी नियंत्रक नहीं है।" यह ठीक उसी प्रकार का नियंत्रक है जैसा कि FooController है। IndexController में ZF इंडेक्स एक्शन को डिफ़ॉल्ट रूप से कहा जाता है, इसलिए example.com/magento/index.php/helloworld को इंडोवर्ल्ड मॉड्यूल में IndexController :: indexAction () कहेंगे। इस प्रकार कॉलिंग ... / helloworld / foo हेलोवर्ल्ड मॉड्यूल में FooController खोजने की कोशिश करेगा और इसके बारे में इंडेक्सिएशन () को कॉल करेगा। IndexController :: fooAction () से आपको अनुरोध करने की आवश्यकता है: ... / helloworld / index / foo।
Matus Zeman

2
सुनिश्चित करें कि आपने @Matus Zeman की प्रतिक्रिया को समझने के लिए यह समझा कि क्यों इंडेक्सकंट्रोलर पर फ़्यूएशन नहीं पाया गया, यह सिर्फ एक 'सामान्य' ज़ेंड फ्रेमवर्क MVC / राउटर चीज़ है और आपने खराब url का उपयोग किया है, इसलिए आपको इसे हटा देना चाहिए "यह नहीं है आपके उत्तर पर MVC नियंत्रक "भाग।
रेगीरो

2
@ hypervisor666 "डेवलपर मोड" चालू करें (इसे Google करें)। डेवलपर मोड के साथ, Magento XML फ़ाइलों में किसी भी त्रुटि पर क्रैश हो जाएगा।
एलन स्टॉर्म

39

मैं पिछले महीने या तो Magento के साथ कुश्ती कर रहा हूँ और मैं अभी भी यह पता लगाने की कोशिश कर रहा हूँ। तो यह अंधे के अंधे का नेतृत्व करने का मामला है। प्रलेखन के तरीके में बहुत कम है और मंच / विकी सबसे अच्छा है। इतना ही नहीं, लेकिन कई समाधान हैं जो या तो पुराने हैं या इष्टतम से बहुत दूर हैं। मुझे यकीन नहीं है कि अगर आपके पास कोई प्रोजेक्ट है या आप इसे जानने की कोशिश कर रहे हैं, लेकिन यह शायद आसान है अगर आपने मौजूदा कार्यक्षमता को संशोधित करने के साथ ही कुछ नया बनाने का विरोध किया। इसके लिए मैं निश्चित रूप से विकी में "डेवलपर्स के लिए अनुशंसित लेख" के साथ जाऊंगा। नई भुगतान विधि एक वास्तविक आंख खोलने वाली थी।

डिबगिंग के लिए मैं निश्चित रूप से FirePHP का उपयोग करने और आपके HTML स्रोत को देखने की सलाह दूंगा जब कुछ गलत हो जाता है। ओले इको डीबग विधि वास्तव में सभी अच्छी तरह से काम नहीं करती है।

सामान्य वास्तुकला इतनी दिमाग-सुन्न है, कि भले ही मैं इसे पूरी तरह से समझूं, मुझे इसे कवर करने के लिए एक पुस्तक लिखने की आवश्यकता होगी। सबसे अच्छी बात मैं आपको सलाह दे सकता हूं कि काश किसी ने मुझे दिया होता, जब मैंने पहली बार शुरू किया था ...

कोर फाइलों से दूर रहें। उन्हें संशोधित न करें, इसके बजाय अपने स्वयं के मॉड्यूल लिखें और आपको जो कुछ भी ज़रूरत है उसे ओवरराइड करें।

Magento XML से मिलकर कॉन्फिग फाइल का उपयोग करता है ताकि यह तय किया जा सके कि उसे क्या करना है। कोर कार्यक्षमता के विपरीत आपको अपना सामान चलाने के लिए इसे प्राप्त करने के लिए आपको सही xml की आवश्यकता होती है। दुर्भाग्य से वहाँ कोई गाइड नहीं है कि आपको XML कैसे बनाया जाए; आपको उदाहरणों को देखने और कुछ गंभीर परीक्षण करने की आवश्यकता है। चीजों को जटिल करने के लिए इन फाइलों की सामग्री काफी हद तक संवेदनशील होती है। हालाँकि, यदि आप इन पर महारत हासिल करते हैं, तो आप बुनियादी कार्यक्षमता के किसी भी हिस्से को ओवरराइड कर सकते हैं जो बहुत शक्तिशाली प्रणाली के लिए बनाता है।

Magento तरीकों की तरह का उपयोग करता है Mage::getModel('mymodel'), Mage::getSingleton('mysingleton'), Mage::helper('myhelper')कुछ वर्गों की वस्तुओं वापस जाने के लिए। यह अपने मूल नाम स्थान में डिफ़ॉल्ट रूप से इन्हें ढूंढता है। यदि आप चाहते हैं कि यह आपके स्वयं के उपयोग के लिए है, तो आपको अपनी config.xmlफ़ाइल में इन्हें ओवरराइड करना होगा ।

आपकी कक्षाओं का नाम उस फ़ोल्डर के अनुरूप होना चाहिए जो वे अंदर हैं।

Magento में वस्तुओं का एक बहुत अंततः कुछ बुलाया एक का विस्तार Varien_Object। यह एक सामान्य उद्देश्य वर्ग (एक प्रकार का तैराक सेना चाकू) है और जीवन में इसका उद्देश्य आपको मक्खी पर अपने तरीकों / चर को परिभाषित करने की अनुमति देना है। उदाहरण के लिए, आप देखेंगे कि इसे एक विधि से दूसरे में डेटा पास करने के लिए एक महिमामंडित सरणी के रूप में उपयोग किया जाता है।

विकास के दौरान सुनिश्चित करें कि आप कैशिंग अक्षम हैं। यह Magento को धीरे-धीरे धीमा कर देगा, लेकिन यह आपको बहुत से सिर के आघात (आपकी मेज पर इसे पीटने से) बचाएगा।

आप देखेंगे $thisकि इसका बहुत उपयोग किया जा रहा है। इसका मतलब है कि आप किस फ़ाइल को देखते हैं, उसके आधार पर एक अलग वर्ग है। get_class($this)आपका मित्र है, विशेष रूप से FirePHP के साथ संयोजन के रूप में।

कागज़ पर लिखी हुई बातें। बहुत। आपके द्वारा सामना करने के 1-2 दिन बाद आपको अनगिनत छोटे तथ्य होने चाहिए।

Magento OO को प्यार करता है। यदि कोई तरीका आपको अलग-अलग 5-10 वर्गों में ले जाए तो आश्चर्यचकित न हों।

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

इससे अधिक है, लेकिन एक शोध प्रबंध में बदलने से पहले मैं यहां रुक जाऊंगा।


कृपया अधिक पोस्ट करें यदि आप कर सकते हैं, तो सभी जानकारी बहुत उपयोगी है :)
क्लिक करें

मीसा, आपको शायद यहां स्टाकेवरफ्लो पर पंजीकरण करना चाहिए, अगर आपने अपना कुकी खो दिया है तो आपका सारा प्रतिनिधि चला जाएगा;)
क्लिक करें

धन्यवाद! यह बहुत मददगार है। नेर
नेर

2

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


0

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

मॉड्यूल की घोषणा

हमें कॉन्फ़िगरेशन फ़ाइल का उपयोग करके मॉड्यूल को घोषित करना होगा। Magento 2 के रूप में मॉड्यूल की निर्देशिका निर्देशिका में विन्यास मॉड्यूल के लिए खोज करते हैं। तो अब हम कॉन्फ़िगरेशन फ़ाइल मॉड्यूल बनाएँगे। xml।

कोड इस तरह दिखेगा:

<?xml version="1.0"?> <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd"> <module name="Cloudways_Mymodule" setup_version="1.0.0"></module> </config>

मॉड्यूल का पंजीकरण मॉड्यूल Magento के घटक पंजीयक वर्ग का उपयोग करके Magento 2 प्रणाली में पंजीकृत होना चाहिए। अब हम फ़ाइल पंजीकरण बनाएँगे। मॉड्यूल रूट डायरेक्टरी में।

app/code/Cloudways/Mymodule/registration.php

कोड इस तरह दिखेगा:

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

मॉड्यूल स्थिति की जाँच करें ऊपर के चरणों का पालन करने के बाद, हमने एक सरल मॉड्यूल बनाया होगा। अब हम मॉड्यूल की स्थिति की जाँच करने जा रहे हैं और क्या यह निम्नलिखित कमांड लाइन का उपयोग करके सक्षम या अक्षम है:

php bin/magento module:status

php bin/magento module:enable Cloudways_Mymodule

एक बार पूरी प्रक्रिया से गुजरने के बाद अपनी प्रतिक्रिया साझा करें


0

मैं अपने मॉड्यूल को मगपलाजा हैलो वर्ल्ड ट्यूटोरियल से बनाने की कोशिश कर रहा था, लेकिन कुछ गलत हो गया। मैंने इस मॉड्यूल का कोड आयातित किया था https://github.com/astorm/magento2-hello-world github से और इसने काम किया। उस मॉड्यूल से, मैंने इसे एक श्रेणी उपश्रेणियों को बनाया है ajax चुनिंदा ड्रॉप डाउन मॉड्यूल। अपने Magento2 इंस्टालेशन के aap / कोड डायरेक्टरी में इसे इंस्टॉल करने के बाद इस URL को फॉलो करें .. http://www.example.com/hello_mvvm/hello/world आप इसका कोड यहां से डाउनलोड कर सकते हैं https://github.com/sanaullahAhmad/Matento2_cat_subcat_ajax_select_dropdowns और इसे अपने aap / code फोल्डर में रखें। इन आदेशों को चलाने की तुलना में ...

php bin/magento setup:update
php bin/magento setup:static-content:deploy -f
php bin/magento c:c

अब आप निम्नलिखित URL http: // {{www.example.com}} / hello_mvvm / मोबाइल / दुनिया के साथ मॉड्यूल कार्यक्षमता की जांच कर सकते हैं


0

तथा,

मैं आपको सिस्टम कॉन्फ़िगरेशन के बारे में जानने के लिए सुझाव देता हूं।

सिस्टम कॉन्फ़िगरेशन फ़ील्ड पर सभी श्रेणियां कैसे दिखाएं?

यहां मैंने एक अच्छे उदाहरण के साथ हल किया। यह काम कर रहा है। आप कोड के प्रवाह की जांच और सीख सकते हैं।

कई अन्य उदाहरण भी हैं जिन्हें आपको सीखना चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.