Entendendo melhor o que são e para que servem as áreas do Magento 2

Primeiramente o que são áreas?

De acordo com a documentação do Magento 2, uma área é um componente lógico que organiza o código para o processamento de uma requisição de forma otimizada. O Magento utiliza áreas para otimizar as chamadas de web services carregando apenas os arquivos necessários para uma área específica.

Por exemplo, se você está fazendo uma chamada em um serviço REST, ao invés de carregar todo o código relacionado à geração de páginas html para o usuário você pode especificar uma área separada que carregará apenas as informações necessárias como resposta para aquele serviço.

Ou seja, como um desenvolvedor magento, você precisa obrigatoriamente saber o que são as áreas do magento, para que elas servem e quais são as áreas existentes no magento.

Dando um pequeno overview sobre as áreas do magento, nós podemos descrever as seguintes áreas:

  • frontend
  • adminhtml
  • global
  • crontab
  • webapi_rest
  • webapi_soap
  • graphql

Vamos passar uma a uma para você entender um pouquinho sobre cada área:

frontend:

A primeira área a se entender é a área frontend. Ela é uma das principais áreas do Magento. Ela é a área referente ao storefront da loja, ou seja, a parte do Magento na qual o seu cliente navega e pode fazer compras.

O arquivo de entrada nessa área é o índex.php na raiz do Magento ou pub/índex.php para quando seu Magento estiver em modo de produção.

adminhtml:

Esta é a área referente ao painel administrativo do magento. Quando você acessa o seu painel administrativo você vai ver um tema com uma barra lateral esquerda com os menus.

Essa área representa o painel administrativo da magento e é chamada de adminhtml.

O arquivo de entrada nessa área é o índex.php na raiz do Magento ou pub/índex.php para quando seu Magento estiver em modo de produção.

global:

Como o próprio nome diz é uma área global e envolve todas as outras áreas do Magento. é basicamente uma área base que pode ser sobrescrita pelas outras áreas em diversos aspectos.

Você pode configurar, por exemplo, um observer para ser executado apenas no frontend, apenas no adminhtml, ou nos dois. Quando você configura um observer para ser executado nas duas áreas, essa área automaticamente é a global.

crontab:

Essa área é referente à área que é carregada quando as crons do Magento são executadas. Nesse caso, por exemplo, nenhuma página ou layout XML é carregado, pois normalmente as tarefas de cron são apenas para executar tarefas de rotina no magento 2.

webapi_rest:

Essa área responde apenas pelas chamadas REST da API do Magento 2. Quando existe uma chamada na API que seja uma chamada do tipo REST, é essa área que irá responder.

webapi_soap:

Essa área responde apenas pelas chamadas SOAP da API do Magento 2.

graphql:

Essa área responde apenas pelas chamadas GraphQL da API do Magento 2.

OBS: Esta área só existe a partir da versão 2.3 do Magento 2, visto que a funcionalidade do GrapQL foi uma das novidades da versão.