Como criar módulos
para Magento 2
Rafael Corrêa Gomes
Software Engineer at Redstage Magento Partner
Sobre
Rafael Corrêa Gomes
- Core Magento 2
- +40 artigos para a Envato (criadora do Themeforest)
- Segundo maior contribuidor mundial do Devdocs
- Professor Magento na única escola do Brasil reconhecida pela ABComm
Redstage
- Localizada em NYC, Chicago, London, Mumbai e São Paulo
- +600 ecommerces
Público
- Quantos desenvolvedores?
- Quantos lojistas?
- Quantos entusiastas M2?
Desafios Magento 1
- Configuração de implementação confusa
- Estrutura de módulo não unificada
- Difícil para testar
- Pouca documentação
Sobre o Magento 2
- Suporte ao PHP7
- Colaboração via Github
- Baseado em Composer
- Injeção de dependência
- PSR (1 2 3 4)
- Tecnologias frontend atualizadas
- CLI Tool extensível
- Cobertura de testes & Framework
Você precisa saber
- Se usa uma class por action (diferente do M1)
- Todas as dependências precisam ser injetadas via __contruct
- As rotas ficam em route.xml
- Mais lógica movida para as classes blocks
- Template e layout movido para a pasta do módulo
- EAV e Eventos continuam lá
Onde os arquivos ficam
- vendor/ ou app/code?
- Qual a melhor opção?
E os módulos em ZIP
- Como instalar um módulo via ZIP?
Composer dentro do ZIP
Módulo via Composer
- Como instalar um módulo via Composer?
composer require vpietri/adm-quickdevbar
php -f bin/magento module:enable -c ADM_QuickDevBar
php -f bin/magento setup:upgrade
Módulo instalado https://goo.gl/uwg5Bb
Instalando via Magento Marketplace
Pastas comuns de módulos M2
Block - Classes view do MVC.
Controller - Lógicas do módulo.
etc - Arquivos de config (incluindo o module.xml).
Model - Comunicação com o banco.
Setup - Scripts de estrutura do DB e instalação.
Pastas adicionais de módulos M2
Api - Arquivo view.xml responsável pelo tamanho de imagens.
i18n - traduções (caso existam).
media - Preview do tema.
web - Arquivos estáticos como css, less, js, imagens e fonts.
Criando um módulo Hello world! no M2
Objetivos do módulo
- Criar uma nova página.
- Usar o arquivo routes.xml.
- Criar um xml e phtml para controlar essa nova página.
Resultado do módulo https://goo.gl/onaeeD
Arquivos mínimos
module.xml
registration.php
Criando nossa rota
Adicionando o phtml
Módulo instalado e desabilitado
Habilitando o módulo
Setup:upgrade
Resultado do módulo
Obrigado!
rafaelcgstz@gmail.com
@rafaelcgstz
https://rafaelstz.github.io
Slideshare
https://goo.gl/2HUvjT

Como criar módulos para magento 2