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:

  1. Sicherheits Patches sind Teil der statischen Code-Basis einer Adobe Commerce-Version.

  2. Composer Patches durch composer install und composer update Plugins wie cweagans/composer-patches.

  3. Alle erforderlichen Patches im Paket Cloud-Patches für Commerce enthalten.

  4. Ausgewählte Qualitäts-Patches in der [Quality Patches Tool] enthalten.

  5. 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.

NOTE
In der Cloud-Infrastruktur können Sie auch Qualitäts-Patches installieren, indem Sie diese in der .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 Befehl vendor/bin/magento-patches apply nach composer install Vorgängen ausführt
  • Plug-in-Paket: centralized-patcher-composer-plugin

    • Definiert eine CentralizedPatcher PHP-Klasse, die die Quality Patches-Liste aus dem centralized-patcher liest
    • Führt den Befehl vendor/bin/magento-patches apply aus, um die Liste der Qualitäts-Patches nach composer install zu installieren