Strategie
Da es viele verschiedene Arten von Patches und viele Möglichkeiten gibt, sie anzuwenden, woher wissen Sie, welches Patch zuerst angewendet wird? Je mehr Patches vorhanden sind, desto größer ist die Chance, dass sie auf dieselbe Datei oder auf dieselbe Codezeile angewendet werden. Patches werden in der folgenden Reihenfolge angewendet:
-
Sicherheits Patches sind Teil der statischen Code-Basis einer Adobe Commerce-Version.
-
Composer Patches durch
composer install
undcomposer update
Plugins wie cweagans/composer-patches. -
Alle erforderlichen Patches im Paket Cloud-Patches für Commerce enthalten.
-
Ausgewählte Qualitäts-Patches in der [Quality Patches Tool] enthalten.
-
Benutzerdefinierte Patches und Adobe Commerce-Support-Patches im
/m2-hotfixes
-Verzeichnis in alphabetischer Reihenfolge nach Patch-Namen.IMPORTANT
Je mehr Patches Sie anwenden, desto komplexer wird Ihr Code. Komplexer Code kann das Upgrade auf eine neue Version von Adobe Commerce erschweren und die Gesamtbetriebskosten erhöhen.
Wenn Sie für die Verwaltung mehrerer Installationen von Adobe Commerce verantwortlich sind, kann es eine Herausforderung sein, sicherzustellen, dass auf allen Instanzen derselbe Satz von Patches installiert ist. Jede Installation verfügt über ein eigenes Git-Repository, /m2-hotfixes
Verzeichnis und composer.json
. Die einzige Garantie, die Sie haben, ist dass die Sicherheits-Patches und erforderlichen Patches für Cloud-Benutzer alle als Teil Ihrer Adobe Commerce-Hauptversion installiert sind.
Derzeit gibt es keine einzige zentralisierte Lösung für dieses Problem, aber Composer bietet eine Möglichkeit, die Lücke zu schließen. Mit dem cweagans/composer-patches
können Sie Patches aus Abhängigkeiten anwenden. Sie können ein Composer-Paket erstellen, das alle Ihre Patches installiert und dieses Paket dann in allen Ihren Projekten benötigt.
Das umfasst Sicherheits, erforderliche und Composer-. Aber was ist mit hochwertigen Patches und dem Inhalt des /m2-hotfixes
?
Anwenden von hochwertigen Patches und Hotfixes
Mit dem Befehl vendor/bin/magento-patches apply
können Sie Qualitäts-Patches sowohl für die Cloud-Infrastruktur als auch für lokale Installationen installieren. Sie müssen sicherstellen, dass der vendor/bin/magento-patches apply
-Befehl nach composer install
ausgeführt wird.
.magento.env.yaml
Ihres Projekts auflisten. Für das hier beschriebene Beispiel ist die Verwendung des Befehls vendor/bin/magento-patches apply
erforderlich.Sie können die Patches angeben, die in der composer.json
-Datei eines benutzerdefinierten Komponentenpakets angewendet werden sollen, und dann ein Plug-in-Paket erstellen, das den Befehl nach composer install
Vorgängen ausführt.
Zusammenfassend lässt sich sagen, dass Sie für dieses zentralisierte Patch-Beispiel zwei benutzerdefinierte Composer-Pakete erstellen müssen:
-
Komponentenpaket:
centralized-patcher
- Definiert die Liste der zu installierenden Qualitäts-Patches und -
m2-hotfixes
- Erfordert das
centralized-patcher-composer-plugin
-Paket, das den Befehlvendor/bin/magento-patches apply
nachcomposer install
Vorgängen ausführt
- Definiert die Liste der zu installierenden Qualitäts-Patches und -
-
Plug-in-Paket:
centralized-patcher-composer-plugin
- Definiert eine
CentralizedPatcher
PHP-Klasse, die die Quality Patches-Liste aus demcentralized-patcher
liest - Führt den Befehl
vendor/bin/magento-patches apply
aus, um die Liste der Qualitäts-Patches nachcomposer install
zu installieren
- Definiert eine