আমি কীভাবে ম্যাজেন্টোতে একটি সাধারণ 'হ্যালো ওয়ার্ল্ড' মডিউল তৈরি করব?


305

নিম্নলিখিতটি কীভাবে ম্যাজেন্টোতে সম্পন্ন করা যায়?

  • নিয়ামক / দর্শন / মডেল পদ্ধতির ব্যবহার করে একটি "হ্যালো ওয়ার্ল্ড" বার্তা প্রদর্শন করুন। সুতরাং, আমি যদি সেখানে যাই তবে http://example.com/myController'হ্যালো ওয়ার্ল্ড' স্ট্রিংটি প্রদর্শিত হবে। আমার ওয়েবসাইটের টেমপ্লেটের মধ্যে এই স্ট্রিংটি প্রদর্শন করতে সক্ষম হওয়া (উদাহরণস্বরূপ, শিরোনাম, পাদচরণ ইত্যাদি) বোনাস হবে।

  • আমি কীভাবে এই নিয়ন্ত্রণকারীটিতে (বা প্রয়োজনে একটি নতুন নিয়ামক) একটি পদ্ধতি যুক্ত করব, যা কোনও মডেলের সাথে ইন্টারেক্ট করে এবং কোয়েরি সম্পাদন করে Select * FROM articles where id='10'এবং id, title, contentকন্ট্রোলারে সারিটি (কলামগুলি অন্তর্ভুক্ত ) ফিরিয়ে দেয় ? এবং তারপরে একটি দৃশ্য অন্তর্ভুক্ত করতে নিয়ামকটি ব্যবহার করুন যা এই সারিটি প্রদর্শিত করবে display সুতরাং http://example.com/myController/show_row(বা অন্য কিছু অনুরূপ) এ যাওয়ার ফলে সারিটি প্রদর্শন করা হবে। (অভিনব হওয়ার দরকার নেই, কেবল একটি echo $row->id;বা অনুরূপ কিছু কাজ করবে))

ম্যাজেন্টোর কোড কাঠামো সম্পর্কিত অন্য কোনও তথ্যও খুব সহায়ক হবে।


6
দেখে মনে হচ্ছে সিস্টেমটি আপনার অনুগ্রহটি পুনরায় বিবেচনা করছে না।
অ্যালান ঝড়

2
আমি এই অনুগ্রহটি এখনও 48 ঘন্টা পুরানো না হওয়ার কারণে খুলতে পারি না .. তবে আমি যত তাড়াতাড়ি সম্ভব এটি খুলব এবং আমি সেরা উত্তরে এটি প্রদান করব
২৮:৫১

আহ, আমি জানতাম না যে পুরানো পোস্টগুলিতে কেবল ক্ষমা চেয়ে নেওয়া হয়েছে oun
অ্যালান ঝড়

3
বাল্যকালে, তিনি সর্বদা দাদাগ্রস্তদের কাছে মহাকর্ষ ছিল; তার কোড একইভাবে কাজ করে।
ভোলআরন

উত্তর:


539

প্রথম এবং সর্বাগ্রে, আমি আপনাকে পিএইচপি আর্কিটেক্ট থেকে পিডিএফ / ই-বুক কিনতে পরামর্শ দিচ্ছি । এটি 20 মার্কিন ডলার, তবে কেবলমাত্র সোজা "ম্যাজেন্টো কীভাবে কাজ করে" এই উত্সটি আমি খুঁজে পেতে সক্ষম হয়েছি। আমি নিজের ওয়েবসাইটে ম্যাজেন্টো টিউটোরিয়াল লেখাও শুরু করেছি ।

দ্বিতীয়ত, আপনার যদি পছন্দ হয় এবং আপনি যদি অভিজ্ঞ প্রোগ্রামার না হন বা অভিজ্ঞ প্রোগ্রামার অ্যাক্সেস না পেয়ে থাকেন (আদর্শভাবে পিএইচপি এবং জাভাতে), তবে অন্য একটি কার্ট বেছে নিন । ম্যাজেন্টো ভাল ইঞ্জিনিয়ারড, তবে এটি শপিং কার্ট সমাধান হিসাবে ইঞ্জিনিয়ার হয়েছিল যা অন্যান্য প্রোগ্রামাররা উপরে মডিউল তৈরি করতে পারে। স্মার্ট যারা, কিন্তু প্রোগ্রামার নন তাদের দ্বারা সহজেই বোঝার জন্য এটি ইঞ্জিনিয়ার হয়নি।

তৃতীয়, ম্যাজেন্টো এমভিসি রেল অন রেলস , জ্যাঙ্গো , কোডইগনিটার , কেকপিএইচপি ইত্যাদির থেকে খুব আলাদা M এমভিসি মডেল যা এই দিনগুলিতে পিএইচপি বিকাশকারীদের কাছে জনপ্রিয়। আমি মনে করি এটি জেন্ড মডেল ভিত্তিক , এবং পুরো জিনিসটি খুব জাভা ওওপি-এর মতো। আছে দুই কন্ট্রোলার আপনার সম্পর্কে উদ্বিগ্ন করা প্রয়োজন। মডিউল / সম্মুখ নাম নিয়ামক এবং তারপরে এমভিসি নিয়ামক।

চতুর্থত, আপনি যে একই মডিউল সিস্টেমটি ব্যবহার করবেন তা ব্যবহার করে ম্যাজেন্টো অ্যাপ্লিকেশনটি নিজেই তৈরি করা হয়েছে, সুতরাং মূল কোডটির চারপাশে খোঁচা দেওয়া একটি দরকারী শেখার কৌশল। এছাড়াও, আপনি ম্যাগেন্টো দিয়ে যা করছেন তা প্রচুর বিদ্যমান ক্লাসগুলিকে ওভাররাইড করে । আমি এখানে যা আচ্ছাদন করছি তা নতুন কার্যকারিতা তৈরি করছে, ওভাররাইডিং নয়। আপনি যখন কোড নমুনার বাইরে দেখছেন তখন এটি মনে রাখবেন।

একটি নির্দিষ্ট ইউআরএলের প্রতিক্রিয়া জানাতে একটি নিয়ামক / রাউটার কীভাবে সেটআপ করবেন তা আপনাকে দেখিয়ে আমি আপনার প্রথম প্রশ্নটি শুরু করব। এটি একটি ছোট উপন্যাস হবে। মডেল / টেমপ্লেট সম্পর্কিত বিষয়গুলির জন্য আমার পরে সময় থাকতে পারে তবে এখনের জন্য, আমি তা করি না। আমি তবে আপনার এসকিউএল প্রশ্নের সাথে সংক্ষেপে কথা বলব।

ম্যাজেন্টো একটি EAV ডাটাবেস আর্কিটেকচার ব্যবহার করে । যখনই সম্ভব, আপনার প্রয়োজনীয় তথ্য পাওয়ার জন্য সিস্টেমটি যে মডেলগুলি সরবরাহ করে তা ব্যবহার করার চেষ্টা করুন। আমি জানি এটি এসকিউএল টেবিলগুলিতে রয়েছে, তবে কাঁচা এসকিউএল কোয়েরি ব্যবহার করে ডেটা ধরার কথা ভাবাই ভাল নয়, আপনি পাগল হয়ে যাবেন।

চূড়ান্ত অস্বীকৃতি। আমি প্রায় দুই বা তিন সপ্তাহ ধরে ম্যাজেন্টো ব্যবহার করছি, তাই সতর্কতা অবলম্বনকারী। স্ট্যাক ওভারফ্লোতে যতটা সহায়তা করা যায় ততটুকু এটি আমার মাথায় সোজা পাওয়ার জন্য অনুশীলন।

একটি মডিউল তৈরি করুন

ম্যাগেন্টোতে সমস্ত সংযোজন এবং কাস্টমাইজেশন মডিউলগুলির মাধ্যমে সম্পন্ন হয়। সুতরাং, আপনাকে প্রথমে যা করতে হবে তা হল একটি নতুন মডিউল তৈরি করা। নীচে app/modulesনামে একটি এক্সএমএল ফাইল তৈরি করুন

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আপনার মডিউলটির নাম।

অ্যাপ্লিকেশন ক্যাশে সাফ করুন

এখন যে মডিউল ফাইলটি রয়েছে, আমাদের ম্যাজেন্টোকে এটি সম্পর্কে জানাতে হবে (এবং আমাদের কাজ পরীক্ষা করুন)। অ্যাডমিন অ্যাপ্লিকেশন এ

  1. সিস্টেম-> ক্যাশে পরিচালনায় যান
  2. সমস্ত ক্যাশে মেনু থেকে রিফ্রেশ নির্বাচন করুন
  3. ক্যাশে সেটিংস সংরক্ষণ করুন ক্লিক করুন

এখন, আমরা নিশ্চিত করেছি যে ম্যাজেন্টো মডিউল সম্পর্কে জানে

  1. সিস্টেম-> কনফিগারেশন এ যান
  2. উন্নত ক্লিক করুন
  3. "মডিউল আউটপুট অক্ষম করুন" সেটিংস বাক্সে, "মাইকম্পানি নাম_হেলো ওয়ার্ল্ড" নামে আপনার নতুন মডিউলটি সন্ধান করুন

আপনি যদি পারফরম্যান্সটি ধীরে ধীরে বেঁচে থাকতে পারেন তবে আপনি বিকাশ / শেখার সময় অ্যাপ্লিকেশন ক্যাশেটি বন্ধ করতে চাইতে পারেন। কিছুই বেশি হতাশার পরে ক্যাশেটি পরিষ্কার করে ভুলে গিয়ে ভাবছেন যে কেন আপনার পরিবর্তনগুলি প্রদর্শিত হচ্ছে না।

ডিরেক্টরি কাঠামো সেটআপ করুন

এর পরে, আমাদের মডিউলটির জন্য একটি ডিরেক্টরি কাঠামো সেটআপ করতে হবে। আপনার এই সমস্ত ডিরেক্টরি প্রয়োজন হবে না, তবে সেগুলি এখনই সেট আপ করার কোনও ক্ষতি নেই।

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>

জিনিসগুলি অপরিবর্তিত করে, এই কনফিগারেশন ফাইলটি আপনাকে ম্যাজেন্টোকে বলতে দেবে আপনি কোন কোডটি চালাতে চান।

রাউটার স্থাপন করা হচ্ছে

এর পরে, আমাদের মডিউলটির রাউটারগুলি সেটআপ করতে হবে। এটি সিস্টেমকে জানতে দেবে যে আমরা কোনও 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 ...

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

সামনের নাম নিয়ামক MyCompanyName_elloWorld ব্যবহার করা উচিত "।

সুতরাং, জায়গায় উপরের কনফিগারেশনটি সহ, আপনি উপরের হেলিওর্ল্ড পৃষ্ঠাটি লোড করার পরে, আপনি একটি 404 পৃষ্ঠা পাবেন। কারণ আমরা আমাদের নিয়ামকের জন্য একটি ফাইল তৈরি করি নি। এখন এটি করা যাক।

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

এখন পৃষ্ঠাটি লোড করার চেষ্টা করুন। অগ্রগতি! 404 এর পরিবর্তে, আপনি একটি পিএইচপি / ম্যাজেন্টো ব্যতিক্রম পাবেন

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";
    }
}

আমরা এখন যা সেটআপ করেছি তা হ'ল মডিউল / সামনের নাম নিয়ামক। এটি মডিউলটির ডিফল্ট নিয়ামক এবং ডিফল্ট ক্রিয়া। আপনি যদি কন্ট্রোলার বা ক্রিয়াগুলি যুক্ত করতে চান তবে আপনাকে মনে রাখতে হবে যে ম্যাজেন্টো ইউআরএলের প্রথম অংশ গাছটি অপরিবর্তনীয় তারা সর্বদা এই পথে চলবে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 এবং অ্যাকশন সূচির সাথে মিলবে এবং সূচক নিয়ন্ত্রণকারীটির অ্যাকশন fooAction নয়। আপনি যদি কোনও ফুঅ্যাকশন রাখতে চান তবে নিয়ামক সূচক কন্ট্রোলারে আপনাকে এই নিয়ামকটিকে এইভাবে স্পষ্টভাবে কল করতে হবে: http://example.com/magento/index.php/helloworld/index/fooকারণ ইউআরএলের দ্বিতীয় অংশটি সর্বদা নিয়ামক নাম হবে। এই আচরণটি ম্যাজেন্টোতে বান্ডিল করা জেন্ড ফ্রেমওয়ার্কের উত্তরাধিকার।

আপনি এখন নিম্নলিখিত ইউআরএল হিট করতে এবং আপনার প্রতিধ্বনি বিবৃতি ফলাফল দেখতে সক্ষম হওয়া উচিত

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

সুতরাং, এটি আপনাকে ম্যাজেন্টো কীভাবে কোনও নিয়ামককে প্রেরণ করে সে সম্পর্কে একটি প্রাথমিক ধারণা দেওয়া উচিত। এখান থেকে আমি মডেলগুলি এবং টেমপ্লেট / লেআউট সিস্টেমটি কীভাবে ব্যবহার করা উচিত তা দেখার জন্য বিদ্যমান ম্যাজেন্টো কন্ট্রোলার ক্লাসে ঝাঁকুনির পরামর্শ দিয়েছি।


4
ধন্যবাদ, এটি খুব সহায়ক। মডেল / ডাটাবেস এবং মতামত ব্যবহার সম্পর্কে কিছু তথ্য যোগ করার বিষয়ে দয়া করে বিবেচনা করুন যাতে আপনার উত্তর সম্পূর্ণ হতে পারে
ক্লিক করুন

7
অ্যাপ্লিকেশন / কোড / স্থানীয় / মাইকম্পানিমন / হ্যালো ওয়ার্ল্ড / ইত্যাদি / কনফিগারেশন। এক্সএমএল যেমন ইমেল / মডিউলগুলিতে অবস্থিত এক্সএমএল (মাইকম্পানি নাম_হেলো ওয়ার্ল্ড নয় মাইকম্প্যানিমে_হেলো ওয়ার্ল্ড) তেমন কেস রয়েছে তা নিশ্চিত করুন!
মোক

8
অ্যালানের নিখুঁত উত্তরের জন্য আমি কেবলমাত্র ছোট মন্তব্য পেয়েছি: "আমরা যা সেটআপ করেছি তা হল মডিউল / সামনের নাম নিয়ামক This এটি এমভিসি নিয়ামক নয়" " এটি FooController হিসাবে ঠিক একই ধরণের নিয়ামক। ZF সালে IndexController সূচক কর্ম ডিফল্টরূপে বলা হয়, তাই অনুরোধ example.com/magento/index.php/helloworld helloworld মডিউলে IndexController :: indexAction () কল হবে। এইভাবে কল করা হচ্ছে ... / হেলিওর্ল্ড / foo হেলিওর্ল্ড মডিউলটিতে FooController সন্ধান করার এবং এটিতে সূচকঅ্যাকশন () কল করতে চেষ্টা করবে। সূচক নিয়ন্ত্রণকারী :: fooAction () ট্রিগার করতে আপনার অনুরোধ করতে হবে: ... / হেলোরল্ড / সূচক / foo।
ম্যাটাস জেইমান

2
আপনি সূচক নিয়ন্ত্রণকারীতে কেন fooAction পাওয়া যায় নি তা বুঝতে @Matus Zeman এর প্রতিক্রিয়াটি পড়েছেন তা নিশ্চিত করুন, এটি কেবল একটি 'সাধারণ' জেন্ড ফ্রেমওয়ার্ক এমভিসি / রাউটার জিনিস এবং আপনি খারাপ ইউআরএল ব্যবহার করেছেন, সুতরাং আপনার "এটি নয় আপনার উত্তরের এমভিসি নিয়ন্ত্রক "অংশ।
রেজিলিও

2
@ হাইপারভাইসর666 "বিকাশকারী মোড" (গুগল এটি) চালু করুন। বিকাশকারী মোড চালু থাকায়, ম্যাজেন্টো এক্সএমএল ফাইলগুলির যে কোনও ত্রুটির কারণে ক্রাশ হবে।
অ্যালান ঝড়

39

আমি গত একমাস ধরে ম্যাজেন্টোর সাথে কুস্তি করছি এবং এখনও আমি এটি বের করার চেষ্টা করছি। সুতরাং এটি অন্ধদের অন্ধদের নেতৃত্ব দেওয়ার ঘটনা। ডকুমেন্টেশনের পথে খুব কমই রয়েছে এবং ফোরাম / উইকি সেরা বিশৃঙ্খল। কেবল তা-ই নয়, বেশ কয়েকটি সমাধান রয়েছে যা পুরানো বা অনুকূল থেকে অনেক দূরে। আপনার কাছে কোনও প্রকল্প আছে বা এটি বের করার চেষ্টা করা হচ্ছে কিনা তা আমি নিশ্চিত নই, তবে আপনি যদি সম্পূর্ণ নতুন কিছু তৈরির বিরোধী হিসাবে বিদ্যমান কার্যকারিতাটি সংশোধন করে শুরু করেন তবে এটি সম্ভবত সহজ। তার জন্য আমি অবশ্যই উইকিতে "বিকাশকারীদের জন্য প্রস্তাবিত নিবন্ধগুলি" নিয়ে যেতে চাই। নতুন অর্থ প্রদানের পদ্ধতিটি ছিল সত্যিকারের চক্ষুদানকারী।

ডিবাগিংয়ের জন্য আমি অবশ্যই ফায়ারএইচপি ব্যবহার করার পরামর্শ দিচ্ছি এবং যখন কোনও সমস্যা হয়ে যায় তখন আপনার এইচটিএমএল উত্সটি দেখার চেষ্টা করব। ওলে ইকো ডিবাগ পদ্ধতি সত্যিই এত ভাল কাজ করে না।

সাধারণ আর্কিটেকচারটি এতটাই নির্বিঘ্নে জটিল যে আমি এটি পুরোপুরি বুঝতে পারলেও, এটি আবরণ করার জন্য আমার একটি বই লিখতে হবে। আমার পক্ষে সর্বোত্তম পরামর্শটি হ'ল আমি আপনাকে প্রথম পরামর্শ দেওয়ার সময় পরামর্শ দিয়েছিলাম ...

কোর ফাইলগুলি থেকে দূরে থাকুন। এগুলি সংশোধন করবেন না, পরিবর্তে আপনার নিজের মডিউলটি লিখুন এবং আপনার যা প্রয়োজন তা ওভাররাইড করুন।

ম্যাজেন্টো এক্সএমএল সমন্বিত কনফিগার ফাইল ব্যবহার করে যা করার দরকার তা স্থির করে। মূল কার্যকারিতার বিপরীতে এটি আপনার নিজের স্টাফ চালানোর জন্য আপনাকে সঠিক এক্সএমএল প্রয়োজন। দুর্ভাগ্যক্রমে আপনাকে কীভাবে এক্সএমএল তৈরি করবেন সে সম্পর্কে কোনও গাইড নেই; আপনাকে উদাহরণগুলি দেখতে হবে এবং কিছু গুরুতর পরীক্ষা করা দরকার। বিষয়গুলিকে জটিল করার জন্য এই ফাইলগুলির সামগ্রীটি মূলত কেস-সংবেদনশীল। তবে আপনি যদি এগুলিকে আয়ত্ত করেন তবে আপনি মৌলিক কার্যকারিতার যে কোনও অংশটি খুব শক্তিশালী সিস্টেমের জন্য ওভাররাইড করতে পারেন।

Magento পদ্ধতি পছন্দ ব্যবহার Mage::getModel('mymodel'), Mage::getSingleton('mysingleton'), Mage::helper('myhelper')নির্দিষ্ট ক্লাস বস্তু দেখাবে। এটি এটির মূল নামস্থানে ডিফল্টরূপে এটি আবিষ্কার করে। আপনি যদি এটি নিজের ব্যবহার করতে চান তবে আপনার config.xmlফাইলগুলিতে এগুলি ওভাররাইড করা দরকার ।

আপনার ক্লাসের নাম অবশ্যই তারা যে ফোল্ডারে রয়েছে সেটির সাথে অবশ্যই তা মেলানো উচিত।

Magento বস্তু অনেক পরিণামে কিছু বলা প্রসারিত Varien_Object। এটি একটি সাধারণ উদ্দেশ্য শ্রেণি (এক ধরণের সুইস আর্মি ছুরির মতো) এবং জীবনের উদ্দেশ্য হ'ল ফ্লাইতে আপনাকে আপনার নিজস্ব পদ্ধতি / ভেরিয়েবল সংজ্ঞায়িত করতে দেওয়া। উদাহরণস্বরূপ আপনি দেখতে পাবেন এটি এক পদ্ধতি থেকে অন্য পদ্ধতিতে ডেটা দেওয়ার জন্য গৌরবযুক্ত অ্যারে হিসাবে ব্যবহৃত হবে।

উন্নয়নের সময় নিশ্চিত করুন যে আপনি ক্যাচিং অক্ষম করেছেন। এটি ম্যাজেন্টোটিকে অত্যন্ত উদ্বেগজনকভাবে ধীর করে দেবে, তবে এটি আপনাকে প্রচুর মাথা ব্যাথা থেকে বাঁচিয়ে দেবে (এটি আপনার ডেস্কে পেঁচানো থেকে)।

আপনি $thisঅনেক ব্যবহৃত হচ্ছে দেখতে পাবেন । আপনি কোন ফাইলটি দেখেন তার উপর নির্ভর করে এর অর্থ একটি ভিন্ন শ্রেণি। get_class($this)আপনার বন্ধু, বিশেষত ফায়ারএইচপি এর সাথে একত্রে।

কাগজের উপর জিনিস জট। অনেক. অসংখ্য ছোট ছোট ফ্যাক্টয়েড রয়েছে যেগুলির মুখোমুখি হওয়ার 1-2 দিনের পরে আপনার প্রয়োজন হবে need

ম্যাজেন্টো ওওকে ভালবাসে। কোনও পদ্ধতির ট্রেসিং যদি আপনাকে 5-10 টি বিভিন্ন ক্লাসের মধ্যে নিয়ে যায় তবে অবাক হবেন না।

ডিজাইনার গাইড এখানে পড়ুন । এটি বেশিরভাগ গ্রাফিক্স ডিজাইনারদের জন্যই বোঝানো হয়েছে তবে আপনার মডিউল থেকে আউটপুট কোথায় এবং কেন শেষ হবে তা বুঝতে আপনার এটি দরকার । এর জন্য অ্যাডমিন প্যানেলের বিকাশকারী বিভাগে "টেমপ্লেট পাথ ইঙ্গিত" চালু করতে ভুলবেন না।

আরও কিছু আছে, তবে এটি একটি গবেষণামূলক রূপে রূপান্তরিত হওয়ার আগে আমি এখানেই থামব।


আপনি যদি পারেন তবে আরও পোস্ট করুন, সমস্ত তথ্য খুব সহায়ক :) :)
আপভোট

মিসা, আপনার সম্ভবত এখানে স্ট্যাকওভারফ্লোতে নিবন্ধন করা উচিত, আপনি যদি নিজের কুকি হারিয়ে ফেলেন তবে আপনার সমস্ত প্রতিনিধি চলে যাবে;)
ক্লিক করুন আপভোট

ধন্যবাদ! এটি খুব সহায়ক। নের
নের

2

আমি বরং Mage2Gen সুপারিশ করব , এটি আপনাকে বয়লারপ্লেট উত্পন্ন করতে সহায়তা করবে এবং আপনি কেবল মূল ব্যবসায়িক যুক্তিতে মনোনিবেশ করতে পারেন। এটি কেবল জিনিসগুলিকে গতিতে সহায়তা করে।


0

একটি ম্যাজেন্টো মডিউল হ'ল ডিরেক্টরিগুলির একটি গ্রুপ যা ব্লক, নিয়ন্ত্রণকারী, সহায়ক এবং মডেলগুলি নির্দিষ্ট স্টোর বৈশিষ্ট্য তৈরি করার জন্য প্রয়োজনীয় to এটি ম্যাজেন্টো প্ল্যাটফর্মের কাস্টমাইজেশনের একক। ব্যবহারকারী অভিজ্ঞতা এবং স্টোরফ্রন্ট উপস্থিতি প্রভাবিত করতে সমর্থন যুক্তি সহ একাধিক ফাংশন সম্পাদনের জন্য ম্যাজেন্টো মডিউলগুলি তৈরি করা যেতে পারে। এটির একটি জীবনচক্র রয়েছে যা তাদের ইনস্টল, মুছে ফেলা বা অক্ষম করার অনুমতি দেয়। উভয় ব্যবসায়ী এবং সম্প্রসারণ বিকাশকারীদের দৃষ্টিকোণ থেকে, মডিউলগুলি ম্যাজেন্টো প্ল্যাটফর্মের কেন্দ্রীয় ইউনিট।

মডিউল ঘোষণা

কনফিগারেশন ফাইলটি ব্যবহার করে আমাদের মডিউলটি ঘোষণা করতে হবে। ম্যাগনো 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>

মডিউলটির নিবন্ধকরণ মডিউলটি ম্যাজেন্টো উপাদান রেজিস্ট্রার শ্রেণি ব্যবহার করে ম্যাজেন্টো 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 থেকে গিথুব থেকে আমদানি করেছি এবং এটি কার্যকর হয়েছে। এই মডিউলটি থেকে, আমি এটিকে একটি বিভাগের উপশ্রেণী বিভাগ তৈরি করেছি এজ্যাক্স সিলেক্ট ড্রপ ডাউনস মডিউল। আপনার মেজেন্টো 2 ইনস্টলেশনের অ্যাপ / কোড ডিরেক্টরিতে এটি ইনস্টল করার পরে এই ইউআরএলটি অনুসরণ করুন .. http://www.example.com/hello_mvvm/hello/world আপনি তার কোডটি এখান থেকে ডাউনলোড করতে পারেন https://github.com/sanaullahAhmad/Magento2_cat_subcat_ajax_select_roddowns এবং এটি আপনার এপ / কোড ফোল্ডারে রাখুন। এই আদেশগুলি চালানোর চেয়ে ...

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

এখন আপনি নিম্নলিখিত URL টির মাধ্যমে মডিউল কার্যকারিতা পরীক্ষা করতে পারেন http: // {{www.example.com}} / হ্যালো_এমভিভিএম / হ্যালো / ওয়ার্ল্ড


0

এবং,

আমি আপনাকে সিস্টেম কনফিগারেশন সম্পর্কে শিখতে পরামর্শ দিই।

সিস্টেম কনফিগারেশন মাঠে সমস্ত বিভাগ কীভাবে প্রদর্শিত হয়?

এখানে আমি একটি ভাল উদাহরণ দিয়ে সমাধান। এটা কাজ করে। আপনি কোডের প্রবাহটি পরীক্ষা করে শিখতে পারেন।

অন্যান্য অনেকগুলি উদাহরণ রয়েছে যা আপনার শেখা উচিত।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.