Cách tạo mô-đun đơn giản trong magento 2


8

Tôi mới dùng magento2.

Tôi muốn tạo mô-đun Hello World đơn giản trong magento 2.

Làm thế nào để tạo mô-đun này?


2
Âm thanh với tôi như ai đó không thể sử dụng công cụ tìm kiếm hoặc quá lười biếng để làm điều đó.
Julien Lachal

Câu trả lời:


8

Vâng, đây là một câu hỏi rộng nhưng lời khuyên tốt nhất của tôi sẽ là kiểm tra các mẫu Magento 2 chính thức.

Bạn có thể tìm thấy chúng ở đây: https://github.com/magento/magento2-samples

Dự án này là tập hợp các mẫu để trình diễn các công nghệ được giới thiệu trong Magento 2. Bạn sẽ tìm thấy phần mở rộng đơn giản nhất cùng với các mẫu tăng dần các tính năng để đưa bạn qua khám phá và giáo dục nền tảng Magento 2.

Trên hết, bạn có thể tìm thấy nhiều hướng dẫn nếu bạn tìm kiếm "mô-đun tạo magento 2" trong Google


10

Hãy đặt tên cho mô-đun StackExchange_HelloWorld.
bạn sẽ cần những tập tin này:

app/code/StackExchange/HelloWorld/registration.php - hồ sơ đăng ký

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

app/code/StackExchange/HelloWorld/etc/module.xml - tệp khai báo mô-đun

<?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="StackExchange_HelloWorld" setup_version="2.0.0" />
</config>

app/code/StackExchange/HelloWorld/etc/frontend/routes.xml - tập tin định tuyến lối vào

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd">
    <router id="standard">
        <route id="helloworld" frontName="helloworld">
            <module name="StackExchange_HelloWorld" />
        </route>
    </router>
</config>

app/code/StackExchange/HelloWorld/Controller/Index/Index.php - bộ điều khiển chỉ mục

<?php 
namespace StackExchange\HelloWorld\Controller\Index;

use Magento\Framework\App\Action\Context;
use Magento\Framework\View\Result\PageFactory;

class Index extends \Magento\Framework\App\Action\Action
{
     protected $resultPageFactory;
     public function __construct(
        Context $context,
        PageFactory $resultPageFactory
    )
    {
        parent::__construct($context);
        $this->resultPageFactory = $resultPageFactory;
    }
    public function execute()
    {
         $resultPage = $this->resultPageFactory->create();
         $resultPage->getConfig()->getTitle()->set(__('Hello World'));
         return $resultPage;
    }
}

app/code/StackExchange/HelloWorld/view/frontend/layout/helloworld_index_index.xml - tập tin bố trí

<?xml version="1.0"?>
<page layout="2columns-left" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceContainer name="content">
            <block class="Magento\Framework\View\Element\Template" template="StackExchange_HelloWorld::index.phtml" />
        </referenceContainer>
    </body>
</page>

app/code/StackExchange/HelloWorld/view/frontend/templates/index.phtml - mẫu cho khối

 <h2>Hello World</h2>

sau khi bạn hoàn thành, chạy nó trong bảng điều khiển

Thiết lập php bin / magento: nâng cấp

Bạn sẽ có thể thấy kết quả tại url [ROOT]/helloworld


Cảm ơn @Marius. Tôi đã thử điều này. Nó không làm việc. Hiển thị lỗi 404.
Saravanan DS

mô-đun của bạn được kích hoạt? Nó xuất hiện trong hệ thống-> cấu hình?
Marius

Đúng. kích hoạt và hiển thị trong hệ thống-> cấu hình.
Saravanan DS

ĐỒNG Ý. tôi sẽ thử lại và chỉnh sửa câu trả lời nếu cần.
Marius

1
Tôi nghĩ rằng tôi đã tìm thấy vấn đề. Các routes.xmltập tin nên được đặt trong app/code/StackExchange/HelloWorld/etc/frontendkhông app/code/StackExchange/HelloWorld/frontend. Có một etcmất tích. Và tôi đã quên 2 usemệnh đề trong tệp điều khiển. Xem câu trả lời cập nhật của tôi.
Marius

1

Tôi cũng vừa mới thử ngày hôm qua và đã thành công trong việc tạo ra mô-đun hello world magento 2 của riêng tôi. Tôi đã làm theo hướng dẫn này để tạo ra một mô-đun Magento 2 đơn giản , có 6 bước như dưới đây

=> Bước 1: Tạo thư mục mô-đun:

ứng dụng / mã / Magentoexplorer / Hellowworld

=> Bước 2: Thêm mô-đun tệp để khai báo mô-đun

    <?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="Magentoexplorer_Helloworld" setup_version="1.0.0" />
</config>

=> Bước 3: Tạo đăng ký.php để đăng ký mô-đun

\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::MODULE,
    'Magentoexplorer_Helloworld',
    __DIR__
);

=> Bước 4: Cách cài đặt, bật hoặc tắt / xóa mô-đun

cd [magento_directory]
php bin/magento setup:upgrade

=> Bước 5: Lộ trình của mô-đun. tạo nênapp/code/Magentoexplorer/Helloworld/etc/frontend/routes.xml

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd">
    <router id="standard">
        <route id="magentoexplorer" frontName="helloworld">
            <module name="Magentoexplorer_Helloworld" />
        </route>
    </router>
</config>

=> Bước 6: Bộ điều khiển và hành động.

ứng dụng / mã / Magentoexplorer / Helloworld / Index / Index.php

<?php
namespace Magentoexplorer\Helloworld\Controller\Index;

class Display extends \Magento\Framework\App\Action\Action
{
  public function __construct(
\Magento\Framework\App\Action\Context $context)
  {
    return parent::__construct($context);
  }

  public function execute()
  {
    echo 'Hello World';
    exit;
  }
}


0

Các mô-đun trần nhất là đủ dễ dàng:

  • Bên trong app/codetạo thư mục của bạn cho Nhà cung cấp và Mô-đun. I Eapp/code/MyCompany/FirstModule
  • Trong FirstModulethư mục thêm mộtregistration.php

    TRỰC TIẾP);

  • Trong cùng một thư mục, tạo một etcthư mục, nhưapp/code/MyCompany/FirstModule/etc

  • Trong etcthư mục tạo mộtmodule.xml

Và Voila. Đó là nó. Bây giờ bạn có thể kích hoạt mô-đun của mình thông qua SSH bằng bin/magento module:enable MyCompany_FirstModulelệnh.



0

Để tạo mô-đun trong Magento 2, cần có các bước sau:

  1. Tạo thư mục.
  2. Cấu hình mô-đun
  3. Đăng ký học phần
  4. Tập tin bộ định tuyến giao diện người dùng
  5. Tạo bộ điều khiển
  6. Tạo khối
  7. Giao diện bố cục
  8. Tệp mẫu Frontend
  9. Kích hoạt mô-đun

0

Để tạo mô-đun Hello World trong Magento 2.

Để sử dụng tốt nhất cơn bão PHP

Để tạo mô-đun Hello World, bạn cần hoàn thành các bước cấp cao sau:

Thực hành tốt nhất Sử dụng PHP Storm

Bước 1: Tạo thư mục của mô-đun Hello World

Bước 2: Tạo mô-đun

Bước 3: Đăng ký Mô-đun đã tạo

Bước 4: Kích hoạt mô-đun

Bước 1: Tạo thư mục của HelloWorld

Tên của mô-đun được xác định là tên Vend VendorName_ModuleName. Phần đầu tiên là tên của nhà cung cấp và phần cuối là tên của mô-đun: Ví dụ: Sathya_HelloWorld.

##### tạo thư mục tệp như

Magento2/app/code/Sathya/HelloWorld

Bước 2: Tạo mô-đun

cần phải tạo thư mục vv và thêm tệp module.xml
app/code/Sathya/HelloWorld/etc/module.xml

Nội dung sẽ là:

<?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="Sathya_HelloWorld" setup_version="1.0.0">
   </module>
</config>

Bước 3: Đăng ký Mô-đun đã tạo

Tạo tập tin đăng ký

 app/code/Sathya/HelloWorld/registration.php

Nội dung sẽ là:

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

Bước 4: Kích hoạt mô-đun

Trước khi bật Mô-đun, hãy đảm bảo Mô-đun có được tạo hay không. Cho rằng chạy lệnh từ thư mục gốc Magento là.

 php bin/magento module:status

Nó liệt kê tất cả các mô-đun bị vô hiệu hóa

###### Sathya_HelloWorld

Để kích hoạt Mô-đun chạy lệnh như:

 php bin/magento module:enable Sathya_HelloWorld
Ngoài ra có một cách khác để kích hoạt nó. Mà sẽ được giải thích sau.

Vui lòng nâng cấp cơ sở dữ liệu của bạn: Chạy cài đặt bin bin / magento: nâng cấp từ thư mục gốc Magento.

Hãy chạy lệnh:

  php bin/magento setup:upgrade

Hãy chạy

  php bin/magento setup:static-content:deploy

Sau đó chạy (tùy chọn)

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

Để thêm tuyến đường, cần phải tạo tệp Rout.xml

app/code/Sathya/HelloWorld/etc/frontend/routes.xml

Nội dung sẽ là:

<?xml version="1.0" ?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd">
    <router id="standard">
        <route frontName="helloworld" id="helloworld">
            <module name="Sathya_HelloWorld"/>
        </route>
    </router>
</config>

Thư mục và tệp bạn cần tạo là:

app/code/Sathya/HelloWorld/Controller/Index/Test.php

Nội dung sẽ là:

<?php
namespace Sathya\HelloWorld\Controller\Index;

class Test extends \Magento\Framework\App\Action\Action
{
    protected $_pageFactory;

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

    public function execute()
    {
        echo "Hello World";
        exit;
    }
}

Sau khi hoàn thành, vui lòng chạy lệnh để xóa bộ nhớ cache

php bin/magento c:f

Kiểm tra Mô-đun của bạn bằng cách nhập URL ngay bây giờ sẽ là:

 http://< YourDomain.com >/helloworld/index/test
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.