Warum ein Thema verwenden, wenn Sie Module haben?


9

Innerhalb meines benutzerdefinierten Moduls habe ich die Datei hinzugefügt

Vendor/Theme/view/layout/default.xml

Ich verwende diese Option, um einen Großteil der globalen Vorlagen der Site mit Vorlagen / Blöcken / Layouts aus dem benutzerdefinierten Modul zu überschreiben. Ich füge auch mein eigenes globales Styling hinzu, das im view/webVerzeichnis in diesem Modul vorhanden ist.

Sollte ich stattdessen ein Thema dafür verwenden? Gibt es ein gutes Argument für ein Entwurfsmuster über dem anderen? Z.B. mit app/designüber app/code?

Antworten:


13

Sie können alles tun, was Sie möchten, aber wenn es das Richtige ist , ist das hier die Frage.

Module

Module sollten die Funktionalität des Webshops hinzufügen oder ändern und sollten / könnten auf andere Magento 2-Webshops übertragen werden. Module können über ein eigenes Layout, Vorlagen und Styling verfügen und das allgemeine Layout, die Vorlagen und das Styling ändern, wenn dies für die Funktionalität Ihres Moduls erforderlich ist. Module konzentrieren sich meist auf eine einzelne Funktionalität und sind daher (relativ) klein. Daher haben Magento 2-Webshops viele.

Module können einfach aktiviert und deaktiviert werden, wodurch die spezifischen Funktionen, die sie hinzufügen oder ändern, angezeigt oder ausgeblendet werden. Es sollte nicht dazu führen, dass sich die gesamte Site ändert.

Themen

Themen ändern das Layout, die Vorlagen und das Design des globalen Webshops und sollten keine Funktionen hinzufügen oder entfernen. Obwohl verpackte (kostenpflichtige) Themen spezielle Funktionen enthalten können, wird dies meistens in Modulen durchgeführt, die ein solches Thema begleiten. Themen sollten austauschbar sein und können daher auf jeden Magento 2-Webshop angewendet werden, aber auch ein Magento 2-Webshop kann Themen leicht wechseln (oder mehrere haben, beispielsweise in einem Multi-Store-Setup).


Wenn Sie also fragen, wo "viele globale Vorlagen der Site mit Vorlagen / Blöcken / Layouts überschrieben werden sollen" , lautet die Antwort in einem Thema .

Auch hier können Sie alles tun, was Sie möchten, aber wenn jemand anderes der Entwicklung beitreten oder diese übernehmen würde, würde er / sie erwarten, dass globale Themenänderungen in einem Thema und nicht in einem Modul vorgenommen werden. Wenn die Dinge nicht wie erwartet ausgeführt werden, verlangsamt dies die Entwicklung und erschwert die Wartung.


1
Genau, ich möchte die Dinge richtig machen. Schätzen Sie die hilfreiche Antwort. Ich werde einige dieser Änderungen auf ein Thema migrieren.
Daniel Thompson

3

Diese Antwort ist das, was ich dachte, dass dies kein Magento-Standard sein kann

Wann wird das Thema für Layout und Vorlagen verwendet und wann wird das Modul verwendet?

Thema

Wenn Sie Ihre Änderungen benötigen, sollte dies ein Ort sein, an dem Sie zeigen müssen, dass Ihre Änderungen in einem anderen Geschäft oder auf einer anderen Website anders aussehen sollten und Sie mehrere Themen haben. Dann können Sie Änderungen am Thema direkt vornehmen

Modul

Wenn Sie ein Modul oder eine Erweiterung für die Anforderung entwickeln und der Meinung sind, dass Ihre Änderungen global sein sollten, fügen Sie Layout und Vorlage in das Modul selbst ein

Was ich vorschlage, erstellen Sie immer eine Masterkopie im Modul. Wenn Sie entsprechend Ihren Anforderungen ändern möchten, kopieren Sie das Thema und nehmen Sie Änderungen an den Vorlagen vor.

Auf diese Weise können Sie Probleme lösen, z. B. wenn das Thema geändert wird, dann waren auch Ihre Moduldateien vorhanden

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.