Funktionsweise von Patches
Patch- (oder diff-) Dateien sind Textdateien, die Folgendes beachten:
- Die zu ändernden Dateien.
- Die Zeilennummer, mit der die Änderung gestartet werden soll, und die Anzahl der zu ändernden Zeilen.
- Der neue Code zum Austauschen.
Wenn das Patch-Programm ausgeführt wird, wird diese Datei eingelesen und die angegebenen Änderungen werden an der/den Datei(en) vorgenommen.
Es gibt drei Arten von Patches:
- Hotfixes - Patches, die von Adobe im Sicherheitscenter veröffentlicht werden.
- Individuelle Patches - Patches, die vom Adobe Commerce-Support auf individueller Basis erstellt und verteilt werden.
- Benutzerdefinierte Patches: Inoffizielle Patches, die Sie aus einem Git-Commit erstellen können.
Hotfixes
Hotfixes sind Patches mit wirkungsvollen Sicherheits- oder Qualitätskorrekturen, die sich auf viele Händler auswirken. Diese Fehlerbehebungen werden auf die nächste Patch-Version für die entsprechende Nebenversion angewendet. Adobe veröffentlicht Hotfixes nach Bedarf.
Hotfixes finden Sie im Sicherheitscenter. Folgen Sie den Anweisungen auf der Seite, um die Patch-Datei je nach Version und Installationstyp herunterzuladen. Verwenden Sie die Befehlszeile oder Composer, um Hotfix-Patches anzuwenden.
Einzelne Patches
Einzelne Patches enthalten Korrekturen von geringer 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 die Quality Patches Tool, um einzelne Patches anzuwenden.
Benutzerdefinierte Patches
Manchmal dauert es eine Weile, bis das Adobe-Engineering-Team eine Fehlerbehebung auf GitHub in einer Adobe Commerce Composer-Version implementiert. In der Zwischenzeit können Sie einen Patch von GitHub aus erstellen und das cweagans/composer-patches
-Plug-in verwenden, um ihn auf Ihre Composer-basierte Installation anzuwenden.
Verwenden Sie die Befehlszeile oder Composer, um benutzerdefinierte Patches anzuwenden.
Es gibt viele Möglichkeiten, benutzerdefinierte Patch-Dateien zu erstellen. Das folgende Beispiel konzentriert sich auf die Erstellung eines Patches aus einem bekannten Git-Commit.
So erstellen Sie einen benutzerdefinierten Patch:
-
Erstellen Sie ein
patches/composer
in Ihrem lokalen Projekt. -
Identifizieren Sie die für den Patch zu verwendende GitHub-Commit- oder Pull-Anfrage. In diesem Beispiel wird der
2d31571
-Commit verwendet, der mit dem GitHub-Problem verknüpft #6474. -
Hängen Sie die
.patch
oder die.diff
Erweiterungen 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
patches/composer
. Beispiel:github-issue-6474.diff
. -
Bearbeiten Sie die Datei und entfernen Sie
app/code/<VENDOR>/<PACKAGE>
aus allen Pfaden, sodass sie relativ zumvendor/<VENDOR>/<PACKAGE>
sind.note note NOTE Texteditoren, die automatisch nachfolgende Leerzeichen entfernen oder neue Zeilen hinzufügen, können den Patch beschädigen. Verwenden Sie für diese Änderungen einen einfachen Texteditor.
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: