Cursos Magento

Como criar um Controller no Magento 2

,

Atualizado em 03 de agosto de 2023

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:

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:

  1. O nome da rota é um nome único, definido dentro do arquivo routes.xml que vamos criar adiante
  2. O nome do controller é o nome da pasta que estará dentro da pasta Controller do nosso módulo
  3. 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.

Controller no Magento 2 funcionando

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.

Últimos posts por Ricardo Martins (exibir todos)
Comentários

Deixe seu comentário

[fbcomments url="https://www.magenteiro.com/blog/magento-2/controller-no-magento-2-como-criar/"]