Estrutura de diretórios de módulos no Magento 2

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

Para mais informações.

/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.

Para mais informações

/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.

Para mais informações

/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!

5 respostas a “Estrutura de diretórios de módulos no Magento 2”

      1. 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

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *