Ao longo deste rápido tutorial veremos como criar um Controller no Magento 2. Controllers são classes responsáveis por tratar uma requisição em uma URL específica.
Veja também: Como criar um Controller no Magento 1.
Após criar um módulo básico de Magento 2, nós vamos:
Definir o URL que vamos usar no nosso controller
Criar o arquivo de rotas
Definindo a URL do nosso controller
A composição de uma URL definirá o nome da nossa rota (definida no arquivo routes.xml) e também o nome do nosso controller e da nossa action.
http://magenteiro.com/nome_da_rota/nome_do_controller/action
Com isso, saiba que:
O nome da rota é um nome único, definido dentro do arquivo routes.xml que vamos criar adiante
O nome do controller é o nome da pasta que estará dentro da pasta Controller do nosso módulo
A action é o nome da nossa classe que estará dentro do diretório acima e conterá um método chamado execute().
Para fins deste exemplo, nossa URL será http://magenteiro.com/minharota/meucontroller/surpresa e o nome do nosso modulo será Magenteiro_Supimpa (porque hoje minha criatividade está o máximo).
Criando o arquivo de rotas (routes.xml)
Arquivo: app/code/Magenteiro/Supimpa/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="supimpa" frontName="minharota"> <module name="Magenteiro_Supimpa"/> </route> </router> </config>
<route id="supimpa" frontName="minharota">
<module name="Magenteiro_Supimpa"/>
Note que a declaração da primeira parte do caminho da nossa URL foi definida no parâmetro frontName.
Arquivo: app/code/Magenteiro/Supimpa/Controller/Meucontroller/Surpresa.php
<?php namespace Magenteiro\Supimpa\Controller\Meucontroller; class Surpresa extends \Magento\Framework\App\Action\Action { public function execute() { echo "Surpresa!"; } }
echo "Surpresa!";
Note que todos os Controllers devem estender \Magento\Framework\App\Action\Action e ter um método execute().
É neste método que nossa mágica acontece.
Se você está criando o módulo agora, é possível que ele ainda esteja desabilitado. Você pode conferir isso digitando bin/magento module:status.
Se for o seu caso, habilite o módulo ( bin/magento module:enable Magenteiro_Supimpa) e faça um upgrade ( bin/magento setup:upgrade).
Se você já está com o módulo habilitado e só está adicionando o controller, basta limpar o cache ( bin/magento cache:clean)
Agora já podemos testar nosso Controller.
No próximo artigo da série vou mostrar como implementar o arquivo de layout XML no nosso controller. Afinal de contas, acho que você não vai ficar feliz só com a Surpresa acima, não é mesmo?
Se inscreva no nosso curso de desenvolvimento para Magento 2. Lá eu ensino isso e muito mais. Dessa forma você conhecerá pessoas incríveis no nosso grupo secreto de estudos, trocará experiências e ainda terá alguns benefícios exclusivos como descontos em ferramentas e dicas.
Download do Módulo acima
Perdeu alguma coisa? Informe seu nome e e-mail abaixo e receba o módulo que acabamos de fazer neste tutorial.