Funktionsweise von Patches
Patch-Dateien (oder diff-Dateien) sind Textdateien, die Folgendes beachten:
- Die zu ändernden Dateien.
- Die Zeilennummer, die mit der Änderung beginnen soll, und die Anzahl der zu ändernden Zeilen.
- Der neue Code, der ausgetauscht werden soll.
Wenn das Patch-Programm ausgeführt wird, wird diese Datei gelesen und die angegebenen Änderungen werden an den Dateien vorgenommen.
Es gibt drei Arten von Patches:
- Hotfixes - Patches, die Adobe im Sicherheitscenter veröffentlicht.
- Individuelle Patches - Patches, die der Adobe Commerce-Support individuell erstellt und verteilt.
- Benutzerdefinierte Patches—Unoffizielle Patches, die Sie aus einem Git-Commit erstellen können.
Hotfixes
Hotfixes sind Patches, die für viele Händler wichtige Sicherheits- oder Qualitätsreparaturen enthalten. Diese Fehlerbehebungen werden auf die nächste Patch-Version der entsprechenden kleineren Version angewendet. Adobe gibt bei Bedarf Hotfixes frei.
Sie finden Hotfixes im Sicherheitszentrum. Befolgen Sie die Anweisungen auf der Seite, um die Patch-Datei herunterzuladen, je nach Version und Installationstyp. Verwenden Sie die Befehlszeile oder den Composer, um Hotfix-Patches anzuwenden.
Einzelne Patches
Einzelne Patches enthalten Korrekturen mit geringer Auswirkung auf die Qualität für ein bestimmtes Problem. Diese Fehlerbehebungen werden auf die zuletzt unterstützte Nebenversion angewendet (z. B. 2.4.x), könnten jedoch in der vorherigen unterstützten Nebenversion (z. B. 2.3.x) fehlen. Adobe veröffentlicht bei Bedarf einzelne Patches.
Verwenden Sie den Quality Patches Tool, um einzelne Patches anzuwenden.
Benutzerdefinierte Patches
Manchmal dauert es eine Weile, bis das Adobe Engineering-Team eine Fehlerbehebung auf GitHub in eine Adobe Commerce Composer-Version einbezieht. In der Zwischenzeit können Sie einen Patch von GitHub erstellen und das Plug-in cweagans/composer-patches
verwenden, um ihn auf Ihre Composer-basierte Installation anzuwenden.
Verwenden Sie die Befehlszeile oder den Composer, um benutzerdefinierte Patches anzuwenden.
Es gibt viele Möglichkeiten, benutzerdefinierte Patch-Dateien zu erstellen. Das folgende Beispiel konzentriert sich auf das Erstellen eines Patches aus einem bekannten Git-Commit.
So erstellen Sie einen benutzerdefinierten Patch:
-
Erstellen Sie ein Verzeichnis mit dem Namen "
patches/composer
" in Ihrem lokalen Projekt. -
Identifizieren Sie die GitHub-Commit- oder Pull-Anforderung, die für den Patch verwendet werden soll. In diesem Beispiel wird der
2d31571
-Befehl verwendet, der mit dem GitHub-Problem #6474 verknüpft ist. -
Hängen Sie die Erweiterungen
.patch
oder.diff
an die Commit-URL an. Verwenden Sie.diff
für eine kleinere Dateigröße. Beispiel: https://github.com/magento/magento2/commit/2d31571f1bacd11aa2ec795180abf682e0e9aede.diff -
Speichern Sie die Seite als Datei im Verzeichnis "
patches/composer
". Beispiel:github-issue-6474.diff
. -
Bearbeiten Sie die Datei und entfernen Sie "
app/code/<VENDOR>/<PACKAGE>
" aus allen Pfaden, sodass sie relativ zum Verzeichnis "vendor/<VENDOR>/<PACKAGE>
" sind.note note NOTE Texteditoren, die nachfolgende Leerzeichen automatisch entfernen oder neue Zeilen hinzufügen, können den Patch beschädigen. Verwenden Sie einen einfachen Texteditor, um diese Änderungen vorzunehmen.
Das folgende Beispiel zeigt die zuvor erwähnte DIFF-Datei, nachdem alle Instanzen von app/code/Magento/Payment
entfernt wurden:
diff --git a/view/frontend/web/js/view/payment/iframe.js b/view/frontend/web/js/view/payment/iframe.js
index c8a6fef58d31..7d01c195791e 100644
--- a/view/frontend/web/js/view/payment/iframe.js
+++ b/view/frontend/web/js/view/payment/iframe.js
@@ -154,6 +154,7 @@ define(
*/
clearTimeout: function () {
clearTimeout(this.timeoutId);
+ this.fail();
return this;
},
Anwenden von Patches
Sie können Patches mit einer der folgenden Methoden anwenden: