Magento এর জন্য Custom Module তৈরি করা

Magento Module Development - ম্যাজেন্টো ফ্রেমওয়ার্ক (Magento Framework) - Web Development

310

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

এখানে আমরা আলোচনা করব কিভাবে ম্যাজেন্টোতে একটি কাস্টম মডিউল তৈরি করতে হয়।


Magento তে Custom Module তৈরি করার পদক্ষেপ

Magento 2 তে কাস্টম মডিউল তৈরি করার জন্য কয়েকটি নির্দিষ্ট ধাপ অনুসরণ করতে হয়। নিচে ধাপে ধাপে প্রক্রিয়াটি দেওয়া হলো:


১. মডিউলের ডিরেক্টরি তৈরি করা

প্রথমে, Magento 2 মডিউলের জন্য ডিরেক্টরি তৈরি করুন। Magento তে মডিউলগুলি সাধারণত app/code ডিরেক্টরিতে থাকে।

app/code/[VendorName]/[ModuleName]

এখানে, [VendorName] হলো আপনার কোম্পানি বা ডেভেলপারের নাম এবং [ModuleName] হলো মডিউলের নাম। উদাহরণস্বরূপ, যদি আপনি একটি মডিউল তৈরি করতে চান যার নাম "HelloWorld", তবে আপনি ডিরেক্টরি তৈরি করবেন:

app/code/YourVendor/HelloWorld

২. Module XML ফাইল তৈরি করা

Magento 2 এ মডিউলকে সিস্টেমে রেজিস্টার করতে module.xml ফাইল তৈরি করতে হয়। এটি মডিউলের বেস কনফিগারেশন এবং ডিপেনডেন্সি নির্দেশ করে।

app/code/[VendorName]/[ModuleName]/etc/module.xml ফাইলটি তৈরি করুন এবং নিচের কোডটি যোগ করুন:

<?xml version="1.0" encoding="UTF-8"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
    <module name="[VendorName]_[ModuleName]" setup_version="1.0.0">
    </module>
</config>

এখানে, [VendorName] এবং [ModuleName] আপনার কাস্টম নাম দিয়ে প্রতিস্থাপন করুন।


৩. ডাটাবেস সেটআপ (অপশনাল)

যদি আপনার মডিউলে ডাটাবেস টেবিল যুক্ত করতে চান, তাহলে আপনাকে একটি InstallSchema.php অথবা UpgradeSchema.php ফাইল তৈরি করতে হবে। এই ফাইলটি ডাটাবেস টেবিল তৈরি এবং আপগ্রেড করার জন্য ব্যবহৃত হয়।

app/code/[VendorName]/[ModuleName]/Setup/InstallSchema.php ফাইল তৈরি করুন এবং নিচের কোডটি ব্যবহার করুন:

<?php
namespace [VendorName]\[ModuleName]\Setup;

use Magento\Framework\Setup\InstallSchemaInterface;
use Magento\Framework\Setup\SchemaSetupInterface;
use Magento\Framework\Setup\ModuleContextInterface;

class InstallSchema implements InstallSchemaInterface
{
    public function install(SchemaSetupInterface $setup, ModuleContextInterface $context)
    {
        $installer = $setup;
        $installer->startSetup();

        // টেবিল তৈরি করার কোড
        if (!$installer->tableExists('your_table_name')) {
            $table = $installer->getConnection()->newTable(
                $installer->getTable('your_table_name')
            )
            ->addColumn(
                'entity_id',
                \Magento\Framework\DB\Ddl\Table::TYPE_INTEGER,
                null,
                ['identity' => true, 'nullable' => false, 'primary' => true, 'unsigned' => true],
                'Entity ID'
            )
            ->addColumn(
                'name',
                \Magento\Framework\DB\Ddl\Table::TYPE_TEXT,
                255,
                ['nullable' => false],
                'Name'
            )
            ->setComment('Your Custom Table');
            $installer->getConnection()->createTable($table);
        }

        $installer->endSetup();
    }
}

৪. Controller তৈরি করা

Magento মডিউলে একটি Controller তৈরি করে ইউজার ইন্টারফেস থেকে ডাটা হ্যান্ডেল এবং প্রক্রিয়া করতে পারেন। এখানে একটি HelloWorldController.php উদাহরণ দেওয়া হলো:

app/code/[VendorName]/[ModuleName]/Controller/Index/Index.php ফাইল তৈরি করুন এবং নিচের কোডটি যোগ করুন:

<?php
namespace [VendorName]\[ModuleName]\Controller\Index;

use Magento\Framework\App\Action\Action;
use Magento\Framework\App\Action\Context;

class Index extends Action
{
    protected $resultPageFactory;

    public function __construct(
        Context $context,
        \Magento\Framework\View\Result\PageFactory $resultPageFactory
    ) {
        $this->resultPageFactory = $resultPageFactory;
        parent::__construct($context);
    }

    public function execute()
    {
        return $this->resultPageFactory->create();
    }
}

এটি একটি পেজ রিটার্ন করবে যেটি আপনার মডিউলের ইনডেক্স অ্যাকশন থেকে তৈরি হবে।


৫. রাউটিং কনফিগারেশন

Magento রাউটিং কনফিগারেশন XML ফাইলের মাধ্যমে মডিউল একশন এবং ইউআরএল ম্যানেজ করে। এই ফাইলটি app/code/[VendorName]/[ModuleName]/etc/frontend/routes.xml এ সংরক্ষণ করুন।

<?xml version="1.0" encoding="UTF-8"?>
<router id="standard">
    <route id="[modulename]" frontName="hello">
        <module name="[VendorName]_[ModuleName]"/>
    </route>
</router>

এখানে [modulename] এবং [VendorName]_[ModuleName] আপনার কাস্টম নাম দিয়ে প্রতিস্থাপন করুন।

এটি সাইটে yourdomain.com/hello/index/index এ আপনার কাস্টম পেজ প্রদর্শন করবে।


৬. মডিউল সক্রিয় করা

Magento এ নতুন মডিউল সক্রিয় করতে আপনি নিম্নলিখিত কমান্ড ব্যবহার করতে পারেন:

php bin/magento module:enable [VendorName]_[ModuleName]
php bin/magento setup:upgrade
php bin/magento cache:flush

৭. মডিউল ডেভেলপমেন্ট এবং টেস্টিং

এখন আপনি আপনার মডিউল টেস্ট করতে পারবেন। ব্রাউজারে গিয়ে আপনার মডিউল পেজ পরীক্ষা করুন (যেমন, yourdomain.com/hello)। যদি সবকিছু সঠিকভাবে কাজ করে, তবে আপনার কাস্টম মডিউল সফলভাবে তৈরি হয়েছে।


সারাংশ

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

Content added By
Promotion

Are you sure to start over?

Loading...