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.
Atenção: em versões mais novas do Magento, há uma nova forma de se escrever Controllers.
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
- Criar a classe do controller
- Limpar o cache do Magento
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.
Vejamos:
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)
Crie o seguinte arquivo:
<?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>
Note que a declaração da primeira parte do caminho da nossa URL foi definida no parâmetro frontName
.
Criando a classe do Controller
<?php namespace Magenteiro\Supimpa\Controller\Meucontroller; class Surpresa extends \Magento\Framework\App\Action\Action { public function execute() { 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.
Limpando o cache
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
)
Estamos prontos? Vamos!
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?
Quer mais?
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.
- PagSeguro (PagBank) para Magento 1 recebe a Nova Geração - 9 de abril de 2024
- Recorrência no WooCommerce Sem Plugins Pagos - 28 de janeiro de 2024
- Chargeback. O que é, e como se livrar deles. - 19 de dezembro de 2023
Deixe seu comentário
[fbcomments url="https://www.magenteiro.com/blog/magento-2/controller-no-magento-2-como-criar/"]