Você entende a estrutura de diretórios de módulos em Magento 2? Sabe para o que serve o diretório /api, /block e etc? Hoje descreveremos a estrutura de todos os módulos que compõe um módulo para Magento 2.
Estrutura de diretórios de módulos no Magento 2
/Api: Service Contracts
O diretório /Api armazena os contratos dos módulos que contém ações específicas que podem ser utilizados de maneira confiável em vários lugares da aplicação.
Exemplo:
\Magento\Catalog\Api\CategoryListInterface
/Api/Data: Data Service Contracts
O diretório /Api/Data contém interfaces que representam dados. Podemos ter aqui um interface de Customer, Product, Category e etc. A implementação geralmente fornece um pouco mais do que Getters e Setters para dados.
/Block: View Models (ou assistente de templates)
Muito pouco do código PHP deveria estar em templates. Como resultado, o Magento trabalha com o diretório /Block para conter as regras de negócios que serão enviadas para o template. Com isso, nós temos uma separação de responsabilidades. Os templates se responsabilizam pela camada de apresentação enquanto que os Blocks pela camada de regras de negócios que serão exibidas nos templates.
/Console: Console Commands
Quando executamos a linha de comando bin/magento uma lista de comandos é exibida. Os códigos dos comandos devem residir no diretório /Console. Um exemplo é o comando bin/magento catalog:product-
attributes:cleanup que reside em /vendor/magento/module-catalog/
Console/Command/ProductAttributesCleanUp.php
/Controller: Web Request Handlers
São as rotas do nosso sistema. Quando uma página é acessada um controller é executado.
/Controller/Adminhtml
São as rotas no admin do Magento 2. Por essa estrutura, você consegue criar as rotas que precisará usar dentro do admin. Por exemplo, um link de menu no admin.
/Cron: Cron Job Classes
Este é o diretório padrão para armazenar as rotinas que precisamos executar com agendamento (schedule)
/etc: Configuration files
Arquivos de configurações ficam nesse diretório. Exemplos: module.xml, crontab.xml, config.xml, di.xml e etc.
/Helper: Occasionally useful for small, reusable code
Com o Magento 2, esse diretório não é mais necessário. Mas, pode ser utilizado para pequenos e reutilizáveis códigos, como por exemplo, um método estático.
/i18n: Translation CSV Files
Este é o lugar onde todas as traduções do módulo em arquivo CSV ficam armazenadas.
/Model: Data Handling and Structures
Este diretório armazena as models do módulo. Neste diretório temos as interações com o banco de dados, pegando informações, por exemplo, como as regras de negócios de um módulo também.
/Model/ResourceModel: Database Interactions
Eles representam como os dados são recuperados e salvos no banco de dados. Qualquer interação direta com o banco de dados deve acontecer nesses arquivos.
/Observer: Event Listeners
O Magento trabalha com Events. Todo event (evento) que é disparado deve ser ouvido por um Observer. Então, é nossos Observers nós temos os códigos que precisam ser executados após o disparo de um determinado evento.
/Plugin: Function Modification
Essa foi uma poderosa melhoria que foi adicionado na Magento 2. Através de Plugins nós conseguimos modificar o comportamento de quase todos os métodos.
Para mais informações sobre Plugins, clique aqui.
/Setup: Database Modification
Quando precisamos adicionar uma tabela customizada para o nosso módulo ou adicionar/atualizar alguma coluna de uma tabela já existente no Magento 2. É nesse diretório que ficam as nossas configurações de tabelas de banco de dados.
/Test:
Testes do módulo
/Ui: UI Component Data Providers
Neste diretório armazena os providers e modificadores para UI Components.
/view
Neste diretório ficam os nossos phtml’s, assets, xml (layout) ui_components e etc.
No próximo artigo, falaremos mais detalhadamente sobre o /view.
Dúvidas? Posta aí!
Um abraço!
Boa tarde,
Onde consigo editar o menu de navegação principal, fontes, nomes etc…
Grato
Edição de estilo (CSS) você tem que trabalhar com LESS. Com ele, você poderá editar o estilo das suas páginas na loja em Magento 2.
https://devdocs.magento.com/guides/v2.4/frontend-dev-guide/css-topics/css-preprocess.html
Ok obrigado, vou tentar fazer e coloco o resultado aqui
Uma outra pergunta. Qual caminho utilizo para chegar nos códigos de edição
/var/www/magento2/app/design/……………… é por aqui ou é por outro
Obrigado
Antônio, boa tarde.
Os arquivos nativos do ficam em vendor/magento. Se você quiser aprender a como fazer a sobreescrita de um template no Magento 2, por favor, assista o vídeo https://youtu.be/t0RRjejg7UM.
Um abraço!