35
Como criar rotas personalizadas no Magento 2
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.
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>
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.
Valores entre chaves (
{test}
) devem ser alterados na implementação do código.
Execute o comando PHP para limpar todos os caches de armazenamento em cache do processos.
php bin/magento cache:clean
php bin/magento flush
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
35