Magento2 Tutorial Magento2

[Tutorial] Tạo module Magento 2

Trong phần kiến trúc magento chúng ta đã biết rằng tất cả các chức năng của Magento đều được module hóa hay nói cách khác Magento nói chung và magento 2 nói riêng là một tập hợp các module thực hiện những nhiệm vụ khác nhau. Trong bài này mình sẽ hướng dẫn các bạn tạo ra một module mới có đầy đủ các thành phần chính với tên là “Helloworld”.

Trước khi đi vào vẫn đề chính ta cần disable all cache để mọi thay đổi trên module mới sẽ được hiển thị ngay trên website mà không cần phải refresh cache.Để disable trong magento 2 các bạn chạy commanline với câu lên sau

php bin/magento cache:disable

Ok đã xong phần chuẩn bị và bây giờ chúng ta sẽ bắt đầu tạo một module tên “Helloworld” với namespace là “StackExchange”. Vì đây là module đầu tiên nên mình sẽ làm đơn giản nhất để các bạn có thể hiểu được. Module này chỉ có nhiệm vụ in ra dòng text “Hello world!” ngoài frontend. Bước 1: tạo các thư mục chính cho module app/code/StackExchange/Helloworld

Bước 2Tạo file cấu hình cho module với tên là module.xml trong thư mục app/code/StackExchange/Helloworld/etc/module.xml sau đó các bạn dùng gõ mã code phía dưới vào file module.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=”StackExchange_HelloWorld” setup_version=”2.0.0″ />

</config>

Bước 3 : Tạo file đăng ký module với hệ thống với tên là registration.php trong thư mục app/code/StackExchange/Helloworld/ sau đó các bạn gõ mã code phía dưới vào file registration.php

<?php

\Magento\Framework\Component\ComponentRegistrar::register( \Magento\Framework\Component\ComponentRegistrar::MODULE, ‘StackExchange_HelloWorld’, __DIR__ );

Bước 4 : Tạo file router.xml cho module trong thư mục app/code/StackExchange/Helloworld/etc/frontend/ sau đó các bạn gõ mã code phía dưới vào file router.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=”helloworld” frontName=”helloworld”> <module name=”StackExchange_HelloWorld” /> </route> </router> </config>

Ở đây chắc có nhiều bạn đặt câu hỏi tại sao phải tạo file router thì mình xin nói lun magento nó chạy theo cú pháp sau http://<magento_site>.com/<router>/<controller>/<action> Ở magento 1 các bạn cũng phải khai báo router trong file config.xml của module với cú pháp <frontend>ten router</frontend> ở magento 2 nó đã đưa cái phần đó thành 1 file riêng để cho việc quản lý được tốt hơn.

Bước 5 : Tạo file Index.php cho module trong thư mục app/code/StackExchange/Helloworld/Index/ sau đó các bạn gõ mã code bên dưới vào file Index.php

<?php

namespace StackExchange\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;

}

}

Bước 6 : các bạn vô commanline của webserver các bạn gõ câu lệnh :

cd [magento_directory]

php bin/magento setup:upgrade

để magento tiến hành cài đặt module của bạn đã viết vào hệ thống

Bước 7 : các bạn ra trình duyệt web và gõ www.yoursite.com/helloworld và các bạn sẽ thấy được kết quả như hình 

module helloword

magento 2 helloword module

Lời kết , do lần đầu tiên viết tút nên còn nhiều thiếu sót mong các bạn góp ý thêm cho mình để mình có thể cung cấp nhiều bài tút hay hơn nữa về magento2

About the author

admin