Neste artigo vamos entender um pouco mais sobre a estrutura de diretórios do Magento 2, explicando cada um dos diretórios/pastas do Magento 2.
app
app code Magento MagedIn design adminhtml frontend etc config.php env.php ------- i18n Magento MagedIn autoload.php bootstrap.php functions.php
A primeira subpasta que vimos no exemplo acima é code. Esta pasta já existia no Magento 1, porém com uma grande diferença… No Magento 1, dentro dela havia três subpastas (code pools): core, local e community. Já no Magento 2, essa divisão por code pool não existe mais.
Dentro de ‘app/code/Magento’, encontram-se todos os módulos nativos da plataforma. Porém, estes arquivos do core só existirão em ‘app/code’ se o Magento tenha sido clonado do repositório oficial no GitHub (https://github.com/magento/magento2). Caso o Magento tenha sido instalado via Composer ou pelo arquivo disponibilizado pelo site do Magento, esta pasta se encontrará vazia e os arquivos dos módulos nativos estarão dentro da pasta ‘vendor’ (diretório padrão do Composer).
Este é o diretório recomendado para os módulos criados especificamente para o projeto em questão.
Além disso, dentro da pasta app temos outras subpastas, tais como: design (contém todos os temas do M2), etc (contém as configurações globais da aplicação), 18in (encontram-se os arquivos responsáveis pela tradução do Magento 2).
Por fim, também temos alguns arquivos PHP usados durante a inicialização do Magento 2.
bin
Contém o arquivo de interface de linha de comando (CLI) do Magento 2. Este é o arquivo binário que nos oferece a possibilidade de executar diversas ações através do terminal.
dev
Possui diversos testes da aplicação (tests), ferramentas para desenvolvedores (tools) e alguns scripts para utilização do TravisCI, uma ferramenta de Continuous Integration (Integração Contínua).
Quando falamos sobre testes no Magento 2, já temos os arquivos do core cobertos pelos seguintes tipos de teste: testes de API, testes de aceitação, testes funcionais, testes de integração, testes de setup, testes de arquivos estáticos e testes unitários.
generated
Nele, ficam todos os arquivos que são gerados automaticamente pela aplicação, como por exemplo: Factories, Proxies, Interceptors, etc…
Se o Magento estiver configurado em developer mode, estes arquivos são gerados automaticamente durante a execução da plataforma. Já em production mode, é necessário complicar a aplicação (através do comando php bin/magento setup:di:compile) para que os mesmos sejam gerados.
OBS: Até a versão 2.1 do Magento 2, esta pasta encontrava-se dentro da pasta ‘var’.
lib
Ele comporta todas as bibliotecas usadas pelo Magento. Estas bibliotecas podem ser de terceiros/externas ou do próprio framework do Magento.
Ele se comporta da mesma forma que a pasta ‘app/code’, ou seja, ela só terá conteúdo caso o Magento tenha sido clonado pelo GitHub. Caso contrário, estes arquivos estarão dentro de ‘vendor’.
Todas as outras bibliotecas utilizadas no Magento 2 que não forem disponibilizadas via Composer devem estar neste diretório.
phpserver
Desde o PHP 5.4, o PHP pode ser executado com um servidor HTTP próprio, bem simples, mas funcional em muitos casos.
O arquivo ‘router.php’, dentro deste diretório contém as configurações necessárias para executar o Magento com o servidor HTTP do próprio PHP. Mais detalhes podem ser encontrados em https://github.com/magento/magento2/tree/2.0/phpserver.
OBS: Por questões de segurança, não é recomendado trabalhar desta forma. O ideal é que você configure seu Magento como ele será no ambiente de produção, ou seja, usando Nginx ou Apache.
pub
Este diretório contém todos os arquivos públicos do Magento. Ele possui arquivos estáticos (como arquivos de CSS, JavaScript), imagens, páginas de erros, etc.
Este deve ser o diretório de entrada das requisições HTTP. Dentro desta pasta, existe um arquivo ‘index.php’, é ele quem deve executar o Magento, e não o arquivo ‘index.php’ da raiz da instalação. Executando o Magento a partir desta pasta, o Magento fica mais seguro, devido ao fato da pasta raiz não ser mais acessível via browser.
Além disso, dentro dele temos mais algumas subpastas e arquivos, com destaque para a pasta ‘static’, a qual contém os arquivos gerados pelo Magento após o deploy em production mode (através do comando bin/magento setup:static-content:deploy) e o arquivo ‘static.php’, responsável pela geração em tempo real dos arquivos de media em developer mode.
setup
Ele possui uma mini aplicação para a instalação do Magento 2. Quando instalamos o Magento através de seu Wizard (via browser), é o conteúdo desta pasta que é renderizado no frontend da loja.
var
Assim como no Magento 1, todos os arquivos temporários gerados pelo Magento, como sessão, arquivos de cache, log, etc, são depositados neste diretório em tempo de execução. Ou seja, todos os arquivos temporários são literalmente colocados dentro desse diretório.
vendor
Por fim, este diretório é o diretório nativo do Composer (https://getcomposer.org/). Nele, ficam todas as dependências do Magento 2, tais como: bibliotecas de terceiros, bibliotecas do próprio Magento, módulos, temas e traduções instalados via Composer.
Como falamos na explicação da pasta ‘app’, se o Magento tiver sido instalado via Composer, ele também vai possuir todos os módulos do core do Magento.
Se você pretende desenvolver um módulo e distribuir o mesmo para a comunidade, o ideal é que você disponibilize-o via Composer, pois é o tipo de instalação recomendada para o Magento 2.
Gostou do conteúdo?
Não perca tempo, veja o conteúdo completo desse artigo e muito mais em nosso canal no Youtube:
https://www.youtube.com/watch?v=OtVNwtMlGjM&index=3&list=PLZq1Zl_VCkkEO6LepoA13qBBPh9TrJUVS
Comentários