Po co używać motywu, gdy masz moduły?

9

Wewnątrz mojego niestandardowego modułu dodałem plik

Vendor/Theme/view/layout/default.xml

którego używam do zastąpienia wielu globalnych szablonów witryny za pomocą szablonów / bloków / układów z niestandardowego modułu. Załączam również własną globalną stylistykę, która istnieje w view/webkatalogu w tym module.

Czy zamiast tego powinienem używać motywu? Czy przemawia za tym jeden wzorzec projektowy nad drugim? Na przykład. używasz app/designponad app/code?

Daniel Thompson
źródło

Odpowiedzi:

13

Państwo może zrobić cokolwiek masz ochotę, ale jeśli to jest słuszne , aby to zrobić jest pytanie tutaj.

Moduły

Moduły powinny dodawać lub zmieniać funkcjonalność sklepu internetowego i powinny / mogą być przenoszone do innych sklepów Magento 2. Moduły mogą mieć własny układ, szablony i styl i mogą zmieniać ogólny układ, szablony i styl, jeśli jest to konieczne dla funkcjonalności modułu. Moduły skupiają się głównie na jednej funkcjonalności, dlatego są (względnie) małe, co sprawia, że ​​sklepy internetowe Magento 2 mają wiele.

Moduły można łatwo włączać i wyłączać, co spowoduje, że dodane lub zmienione funkcje pojawią się lub znikną. Nie powinno to spowodować zmiany całej witryny.

Tematy

Motywy zmieniają układ, szablon i styl globalnego sklepu internetowego i nie powinny dodawać ani usuwać żadnych funkcji. Chociaż spakowane (płatne) motywy mogą zawierać specjalne funkcje, najczęściej odbywa się to w modułach towarzyszących takiemu tematowi. Motywy powinny być wymienne, dlatego można je stosować w dowolnym sklepie internetowym Magento 2, ale także sklep internetowy Magento 2 może łatwo przełączać motywy (lub mieć wiele, na przykład w konfiguracji wielu sklepów).


Więc jeśli zapytasz, gdzie „zastąpić wiele globalnych szablonów witryny za pomocą szablonów / bloków / układów” , odpowiedź byłaby w temacie .

Ponownie możesz zrobić wszystko, co chcesz, ale jeśli ktoś dołączy lub przejmie programowanie, będzie oczekiwał, że zmiany globalnej kompozycji witryny będą w temacie, a nie w module. Gdy rzeczy nie są wykonywane zgodnie z oczekiwaniami, spowalnia to rozwój i utrudnia konserwację.

7ochem
źródło
1
Dokładnie, chcę robić rzeczy we właściwy sposób. Doceń pomocną odpowiedź, zacznę migrować niektóre z tych zmian do motywu.
Daniel Thompson,
3

Sądzę, że ta odpowiedź nie może być standardem Magento

Kiedy używać motywu do układu i szablonów, a kiedy modułu

Motyw

Gdy potrzebujesz zmian, powinno to być jedno miejsce, w którym musisz pokazać, że zmiany powinny wyglądać inaczej, w innym sklepie lub na stronie, a masz wiele motywów, możesz bezpośrednio wprowadzać zmiany w motywie

Moduł

gdy opracowujesz dowolny moduł lub rozszerzenie dla tego wymagania i uważasz, że zmiany powinny być globalne, umieść układ i szablon w samym module

Sugeruję, aby zawsze wykonać jedną kopię główną w module, a jeśli chcesz zmienić zgodnie z wymaganiami, skopiuj w motywie i dokonaj zmian w szablonach.

W ten sposób możesz rozwiązać problemy, takie jak zmiana motywu, a także pliki modułów

Murtuza Zabuawala
źródło