Awaryjna logika projektu Magento2

15

Znamy już logikę awaryjną projektowania z Magento 1.x:

  1. Aktualny pakiet / aktualny motyw
  2. Bieżący pakiet / domyślny motyw
  3. Pakiet podstawowy / domyślny motyw

Teraz. chcę wiedzieć Jak wygląda logika cofania projektu w Magento 2.x dla plików motywów, układów i szablonów?

Opisz krótko.

Amit Bera
źródło

Odpowiedzi:

12

Chodzi o to, w porównaniu do Magento 1, w którym zaimplementowano pseudo-awaryjny mechanizm. Magento 2 ma mechanizm, który cofa się tyle razy, ile można znaleźć motywu nadrzędnego . System jest bardzo podobny do tego wprowadzonego na Magento 1.9 przy użyciu theme.xmlplików.

Na przykład, gdy masz 5 motywów dziedziczących po sobie, mechanizm wróci do każdego z nich. Pakiet nie jest już brany pod uwagę.

Oto pseudo kod, który może opisać nowy mechanizm projektowania:

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

Jako przykład cofnięcia pliku statycznego załóżmy, że istnieje żądanie logo.svgobrazu w motywie Puste.

Korzystając z dziedziczenia motywu i reguł cofania plików, Magento stosuje następującą kolejność wyszukiwania:

  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

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

Raphael at Digital Pianism
źródło
fajny udział @ Raphel. Co z układem i szablonem?
Amit Bera
@AmitBera Zredagowałem swoją odpowiedź, ponieważ podany przykład był niejasny w pierwszej części mojej odpowiedzi.
Raphael w Digital Pianism
@RaphaelatDigitalPianism Podany link referencyjny daje 404, byłoby również wspaniale, gdybyś mógł uwzględnić awarię projektową modułów.
Vivek Kumar
1

Obecna logika cofania tematu:

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

Ten wzór został użyty również dla układu i szablonu.

Amit Bera
źródło
0

Logika rezerwowa w Magento 2 jest całkowicie inna niż Magento 1 i jest powiązana z funkcją dziedziczenia motywu.

Zgodnie z dokumentem:

Kolejność zastępcza jest nieco inna w przypadku zasobów statycznych (CSS, JavaScript, czcionek i obrazów) oraz innych plików motywów, układów i szablonów.

Możesz sprawdzić więcej szczegółów w dokumencie za pomocą tego linku: https://devdocs.magento.com/guides/v2.3/frontend-dev-guide/themes/theme-inherit.html

Mike Mo
źródło