Best Practices für die Code-Verwaltung für Adobe Commerce
Dieses Thema soll Ihnen bei der Entscheidung helfen, ob Sie Git oder Composer zur Verteilung von benutzerdefiniertem Code verwenden möchten, unter Berücksichtigung der Versionsverwaltung, der Code-Komplexität und der Abhängigkeitsverwaltung.
Betroffene Produkte und Versionen
Alle unterstützten Versionen von:
- Adobe Commerce auf Cloud-Infrastruktur
- Adobe Commerce vor Ort
Definitionen
- Globale Referenzarchitektur (GRA): Wird auch als White Label Architecture oder Common Code Base bezeichnet. Dies ist die Modulverteilungsarchitektur für eine Einrichtung mit mehreren Instanzen.
- Einrichtung mehrerer Instanzen: Derselbe Client verwendet separate Adobe Commerce-Installationen für verschiedene Regionen oder Marken. Jede Installation verfügt über gemeinsame und eindeutige Module.
- Setup einer Instanz: Es gibt nur eine Adobe Commerce-Installation. Für verschiedene Testumgebungen können mehrere Kopien des Quellcodes vorhanden sein, es gibt jedoch nur eine Version des Produktionscodes.
Verwendung von Git oder Composer
- Standardansatz für die Verwaltung von Code für eine Einzelinstanz-Einrichtung
- Wenn die Codebasis in Zukunft nicht Teil einer Markenübergreifenden Analyse sein wird
- Wenn alle Marken auf einer einzigen Instanz als Websites ausgeführt werden
- Wenn die Codebasis in Zukunft Teil eines Multi-Instanz-Setups werden kann oder wird
- Wenn fast alle Module verknüpft sind (nicht empfohlen)
- Wenn der Code von einem Team verwaltet wird, das nicht mit Composer vertraut ist
- Standardansatz für die Verwaltung von Code für eine Einrichtung mit mehreren Instanzen
- Wenn Adobe die Codebasis verwaltet oder das Wartungsteam mit Composer vertraut ist
Funktionsmatrix
Jedes einzelne Composer-Paket wird durch ein Git-Repository dargestellt
app/
.vendor/
.vendor/
installiert, wenn sie über den Marketplace oder packagist.org installiert werden. Andernfalls werden sie in app/
installiertvendor/
installiert.git merge
und git pull
oder git checkout
gekennzeichnetcomposer update
und git pull
oder git checkout
gekennzeichnetmodule.xml
, eingeschränkte Funktionalität
composer.json
Lösungen zur Vermeidung
-
Kombinieren von Composer und
app/code
für Ihre ModuleDies führt dazu, dass alle Nachteile beider Code-Management-Stile in Ihrem Projekt kombiniert werden. Es erhöht unnötige Komplexität, Instabilität und mangelnde Flexibilität.
Beispiel:
- Erklären Sie dem Entwicklungsteam sowohl Git- als auch Composer-Workflows (anstelle von nur einem davon).
- Installieren Sie inkompatible Module in "
app/code
", da nichts vorhanden ist, um zu verhindern, dass dies passiert. - Das Verschieben eines Moduls von
app/code
in den Composer (oder umgekehrt) ist umständlich, insbesondere bei laufender Entwicklung.
-
satis package manager
Private Packagisten kosten ± 600 € pro Jahr. Diese Kosten sind für die gesamte GRA kombiniert, nicht pro Marke. Versuchen Sie nicht, diese Kosten mit der kostenlosen Lösung Satis zu vermeiden. Satis aktualisiert Ihre Pakete nicht automatisch, wenn Sie Commits zu Git pushen. Auch Satis hat keine eingebaute Autorisierung. Sie müssen einen Webserver unterhalten, um Satis auszuführen. Am Ende verbringen Sie eine Vielzahl von privaten Packagisten Abonnementgebühren für Satis.
-
Mit Git beginnen und dann zu Composer wechseln
Entscheiden Sie sich zu Beginn Ihres Projekts für einen Code-Management-Ansatz. Der Wechsel von Git zu Composer oder umgekehrt mit laufender Entwicklung ist umständlich und könnte zu Code-Verlust und/oder Verlust des Revisionsverlaufs führen.