Como criar um Módulo no Magento 2

Tutorial ensinando a como criar um Módulo no Magento 2, passo a passo de como criar uma estrutura básica de um módulo para que você possa complementar com Controllers, Rewrites, Blocks.

Como criar um Módulo no Magento 2

Este tutorial é muito importante para você que está começando.

Irei utilizar esta estrutura como base para diversos tutoriais que estarei disponibilizando no site sobre desenvolvimento no Magento 2.

Nunca faça o desenvolvimento de um módulo em um ambiente de produção. Vejo muitos desenvolvedores fazendo isso para entregar o código o quanto antes e essa pratica coloca a loja em um estado instável, gerando diversos erros para os usuários.

Magento 2 utiliza arquitetura MVC:

Model-view-controller (MVC), em português modelo-visão-controlador, é um padrão de arquitetura de software (não confundir com um design pattern) que separa a representação da informação da interação do usuário com ele. O modelo (model) consiste nos dados da aplicação, regras de negócios, lógica e funções.

Conheça o básico sobre o Magento e PHP

Componentes Magento

O aplicativo Magento é composto de Módulos, Temas e Pacotes de Linguagem:

Os módulos interagem com outras partes do aplicativo para realizar uma função de negócios específica ou fornecer um recurso. Um módulo pode conter uma interface de usuário para exibir informações ou interagir com o usuário. Ele também pode conter interfaces de aplicativos que outro módulo Magento ou trecho de código pode chamar.

Os temas fornecem um toque personalizado para cada instalação do Magento, alterando a aparência da vitrine ou do administrador. Dois temas já estão disponíveis na estrutura de código padrão do Magento 2.x: Tema em branco e tema Luma. Consulte esses temas padrão ao criar temas personalizados.

Os pacotes de idiomas auxiliam na internacionalização (i18n) e na localização fornecendo traduções para strings exibidas na vitrine e no Admin.

Primeiro passo para criar o módulo no Magento 2

Primeiro passo..

Vamos criar os diretórios: app/code/Rogertakemiya/Test

A primeira parte do nome deverá ser a empresa/desenvolvedor que criou o módulo, no meu caso é Rogertakemiya (sem espaços!).

Já a segunda parte é o nome do módulo, é importante que o nome facilite a identificação da função do módulo.

Atenção: Caso você altere os nomes Rogertakemiya (vendorname) e Test (modulename), altere também as referencias desses diretórios nos próximos arquivos que iremos criar.

Segundo: module.xml

No diretório do nosso plugin Rogertakemiya/Test crie a pasta e arquivo /etc/module.xml

Conteúdo do 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="Rogertakemiya_Test" setup_version="0.0.1"/>
</config>

Terceiro: registration.php

Agora vamos criar o arquivo registration.php no diretório:

app/code/Rogertakemiya/Test/registration.php

Conteúdo:

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

Quarto: habilitando o módulo

Primeiro execute o comando:

php bin/magento module:status

Você verá que o módulo esta desativado.

Agora para ativa-lo, execute:

php bin/magento module:enable Rogertakemiya_Test

Na sequência, execute:

bin/magento setup:upgrade

Quinto: Criando um Controller

Primeiro teremos que criar o arquivo routes.xml no diretório frontend em etc.

Rogertakemiya/Test/etc/frontend/routes.xml

Conteúdo:

<?xml version="1.0"?>
  <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../../lib/internal/Magento/Framework/App/etc/routes.xsd">
    <router id="standard">
        <route id="rogertakemiya" frontName="rogertakemiya">
            <module name="Rogertakemiya_Test" />
        </route>
    </router>
  </config>

Agora vamos criar o Controller, crie o arquivo Test.php dentro do diretório Controller/Test

Rogertakemiya/Test/Controller/Test/Test.php

Conteúdo do arquivo:

  <?php
  namespace Rogertakemiya\Test\Controller\Hello;
 
  class World extends \Magento\Framework\App\Action\Action
  {
    public function __construct(
        \Magento\Framework\App\Action\Context $context)
    {
        return parent::__construct($context);
    }
     
    public function execute()
    {
        echo 'Funcionou';
        exit;
    } 
  }

Para testar, acesse: www.sualoja.com/rogertakemiya/test/test

Conclusão de como criar um Módulo no Magento 2

Desenvolver na plataforma Magento não é uma tarefa fácil, consulte sempre a documentação oficial para gerar códigos de qualidade, evitando conflitos e bugs na loja.

Documentação Oficial: http://devdocs.magento.com/

Dúvidas? Faça um comentário logo abaixo ou envie uma mensagem clicando aqui.

O seu endereço de e-mail não será publicado.