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.

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


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.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.