Lógica de fallback do projeto Magento2

15

Já sabemos a lógica de fallback de design do Magento 1.x:

  1. Pacote atual / tema atual
  2. Pacote atual / tema padrão
  3. Pacote base / tema padrão

Agora. Eu quero saber Qual é a lógica de fallback de design no Magento 2.x para arquivos de tema, layout e modelo?

Descreva brevemente.

Amit Bera
fonte

Respostas:

12

O ponto é, comparado ao Magento 1, onde um mecanismo de pseudo-fallback foi implementado. O Magento 2 possui um mecanismo que recua quantas vezes for possível encontrar um tema pai . O sistema é muito semelhante ao introduzido no Magento 1.9 usando theme.xmlarquivos.

Por exemplo, quando você tem 5 temas herdados um do outro, o mecanismo recai sobre cada um deles. O pacote não é mais levado em consideração.

Aqui está um pseudo-código que pode descrever o novo mecanismo de design:

do
    look in the current theme
    current theme will be parent theme on the next iteration
while the current theme has a parent theme

look in the view folder of the module area if the layout/template is not defined in the previous steps

Como um exemplo de fallback de arquivo estático, suponha que haja uma solicitação para a logo.svgimagem no tema Em branco.

Usando a herança de temas e as regras de fallback de arquivos, o Magento usa a seguinte ordem de pesquisa:

  1. app/design/frontend/Magento/blank/web/images/logo.svg
  2. app/design/frontend/Magento/blank/web/logo.svg
  3. app/design/frontend/Magento/parent_theme/web/images/logo.svg
  4. app/design/frontend/Magento/parent_theme/web/logo.svg

Referência: http://devdocs.magento.com/guides/v2.0/architecture/view/static-process.html

Raphael na Digital Pianism
fonte
O que é o layout e o modelo?
Amit Bera
@AmitBera Editei minha resposta, pois o exemplo fornecido foi meio confuso na primeira parte da minha resposta.
Raphael no Pianism Digital 04/04
@RaphaelatDigitalPianism O link de referência fornecido fornece 404, também seria ótimo se você pudesse incluir fallback de design nos módulos.
Vivek Kumar
1

Lógica de fallback atual do tema:

  1. Current_theme/<Namespace>_<Module>/
  2. parent_theme(s)/<Namespace>_<Module>/
  3. module_dir/view/frontend/
  4. module_dir/view/base/

Esse padrão também foi usado para layout e modelo.

Amit Bera
fonte
0

A lógica de fallback no Magento 2 é completamente diferente do Magento 1 e associada ao recurso de herança de tema.

De acordo com o documento:

A ordem de fallback é um pouco diferente para ativos estáticos (CSS, JavaScript, fontes e imagens) e outros arquivos de tema, layouts e modelos.

Você pode verificar mais detalhes no documento através deste link: https://devdocs.magento.com/guides/v2.3/frontend-dev-guide/themes/theme-inherit.html

Mike Mo
fonte