Best Practices für die Code-Verwaltung in Adobe Commerce
Dieses Thema soll Ihnen bei der Entscheidung helfen, ob Sie Git oder Composer verwenden möchten, um benutzerdefinierten Code zu verteilen. Dabei sind die Versionsverwaltung, die Code-Komplexität und die Abhängigkeitsverwaltung zu berücksichtigen.
Betroffene Produkte und Versionen
- Adobe Commerce auf Cloud-Infrastruktur
- Adobe Commerce On-Premises
Definitionen
- Globale Referenzarchitektur (GRA) Wird auch als White Label Architecture oder Common Code Base bezeichnet. Dies ist die Modulverteilungsarchitektur für ein Multi-Instanz-Setup.
- Multi-Instanz-Setup: Derselbe Client verwendet separate Adobe Commerce-Installationen für separate Regionen oder Marken. Jede Installation verfügt sowohl über gemeinsame als auch über eindeutige Module.
- Einzelinstanz-Setup: Es gibt nur eine Adobe Commerce-Installation. Für verschiedene Testumgebungen können mehrere Kopien des Quell-Codes vorhanden sein, es gibt jedoch nur eine Version des Produktions-Codes.
Verwendung von Git oder Composer
- Standardansatz für die Verwaltung von Code für eine Einzelinstanz-Einrichtung
- Wann die Code-Basis künftig nicht mehr Teil einer Mehrmarken-GRA sein wird
- Wenn alle Marken auf einer einzigen Instanz als Websites ausgeführt werden
- Wann die Code-Basis Teil einer Multi-Instanz-Einrichtung werden kann oder wird
- Wenn fast alle Module miteinander verknüpft sind (nicht empfohlen)
- Wenn der Code von einem Team verwaltet wird, das nicht mit Composer vertraut ist
- Standardansatz für die Code-Verwaltung bei einem Setup mit mehreren Instanzen
- Wenn Adobe die Code-Basis verwaltet oder das Wartungsteam mit Composer vertraut ist
Funktionsmatrix
Repository. 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/
installiertgit merge
und git pull
oder git checkout
gekennzeichnetcomposer update
und git pull
oder git checkout
gekennzeichnetmodule.xml
, eingeschränkte Funktionalität
composer.json
Zu vermeidende Lösungen
-
Kombinieren von Composer und
app/code
für Ihre ModuleDadurch werden alle Nachteile beider Code-Management-Stile in Ihrem Projekt kombiniert. Sie sorgt für unnötige Komplexität, Instabilität und mangelnde Flexibilität.
Beispiel:
- Erklären Sie dem Entwicklungs-Team die beiden Workflows Git und Composer (anstelle von nur einem).
- Installieren Sie inkompatible Module in
app/code
, da es nichts gibt, was dies verhindern könnte. - Das Verschieben eines Moduls von
app/code
zu Composer (oder umgekehrt) ist umständlich, insbesondere bei laufender Entwicklung.
-
SATIS Package Manager
Private Packagist kostet ± € 600 pro Jahr. Diese Kosten gelten für die gesamte GRA zusammen, nicht pro Marke. Versuchen Sie nicht, diese Kosten zu vermeiden, indem Sie die kostenlose Lösung Satis verwenden. Satis aktualisiert Ihre Pakete nicht automatisch, wenn Sie Commits an Git senden. Auch Satis hat keine integrierte Autorisierung. Sie müssen einen Webserver verwalten, um Satis ausführen zu können. Am Ende gibt man eine Vielzahl der Abonnementgebühren für Privatpakete aus, um Satis zu erhalten.
-
Beginnen Sie mit Git und wechseln Sie dann zu Composer
Entscheiden Sie sich zu Beginn Ihres Projekts für einen Code-Management-Ansatz. Der Wechsel von Git zu Composer oder umgekehrt ist bei fortlaufender Entwicklung umständlich und kann zu Codeverlust und/oder Verlust des Revisionsverlaufs führen.