DEV Community

Lucas Teixeira dos Santos Santana
Lucas Teixeira dos Santos Santana

Posted on

Como criar rotas personalizadas no Magento 2

Contextualizando

O que é uma rota?

Uma rota está diretamente relacionada a URL funcionando como um localizador de um recurso, acrescentando um path (caminho) na URL, que ao ser chamado, retornará uma página gerada dinamicamente conforme o caminha da URL.


Código para criar uma rota personalizada

O arquivo routes.xml contém informações sobre todas as rotas e frontNames registrados. O atributo frontName é a primeira parte de uma rota da URL.
Deve-se registrar um arquivo routes.xml e associá-lo a um módulo. É possível ter vários módulos associados a uma rota.
Para criar uma rota relacionada ao painel administrativo utiliza-se a estrutura de pastas \{Vendor}\{Module}\etc\adminhtml\routes.xml e o valor admin para o atributo id do nó <router>, já para criar rotas na parte visual da loja do site utiliza-se a estrutura de pastas \{Vendor}\{Module}\etc\frontend\routes.xml e o valor standard para o atributo id do nó <router>.

<?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="{router_id}"> <route id="{route_id}" frontName="{frontName}"> <module name="{Vendor}_{Module}" /> </route> </router> </config> 
Enter fullscreen mode Exit fullscreen mode

O atributo id do nó <route> é uma string única que identificará a rota. Esta string é utilizada para declarar a primeira parte do nome do arquivo de layout da página.
O atributo frontName é uma string única que identificará a primeira parte do caminho da URL.


Finalizando

Valores entre chaves ({test}) devem ser alterados na implementação do código.

Habilitando as alterações

Execute o comando PHP para limpar todos os caches de armazenamento em cache do processos.

php bin/magento cache:clean php bin/magento flush 
Enter fullscreen mode Exit fullscreen mode

Diretórios e Arquivos

Segue a a lista de diretórios e arquivos que devem ser criados.

- app/ - code/ - {Vendor}/ - {Module}/ - etc/ - {area}/ - routes.xml - module.xml - registration.php - composer.json 
Enter fullscreen mode Exit fullscreen mode

Top comments (0)