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.
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.
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/