パッチの動作
パッチ(または差分)ファイルは、次の点に注意するテキストファイルです。
- 変更するファイル。
- 変更を開始するライン番号と変更するライン数。
- 入れ替える新しいコード。
パッチプログラムを実行すると、このファイルが読み込まれ、指定された変更がファイルに加えられます。
パッチには次の 3 種類があります。
- ホットフィックス— Adobeがパブリッシュするパッチ セキュリティセンター.
- 個々のパッチ- Adobe Commerce サポートが個別に作成および配布するパッチ。
- カスタムパッチ- Git コミットから作成できる非公式パッチ。
ホットフィックス
ホットフィックスは、多くのマーチャントに影響を与える影響の大きいセキュリティ修正または品質修正を含むパッチです。 これらの修正は、該当するマイナーバージョンの次のパッチリリースに適用されます。 Adobeは、必要に応じてホットフィックスをリリースします。
ホットフィックスは、次の場所にあります。 セキュリティセンター. ページの指示に従って、バージョンとインストールの種類に応じてパッチファイルをダウンロードします。 の使用 コマンドライン または コンポーザー ホットフィックスのパッチを適用する。
個々のパッチ
個々のパッチには、特定の問題に対する影響の低い品質修正が含まれています。 これらの修正は、最新のサポートされているマイナーバージョン(例:2.4.x)に適用されますが、以前のサポートされているマイナーバージョン(例:2.3.x)には含まれていない場合があります。 Adobeでは、必要に応じて個別のパッチをリリースします。
の使用 Quality Patches Tool 個々のパッチを適用します。
カスタムパッチ
Adobeエンジニアリングチームが、Adobe Commerce Composer リリースで GitHub に加えられたバグ修正を含めるのに時間がかかる場合があります。 それまでの間、GitHub からパッチを作成して、を使用できます cweagans/composer-patches
composer ベースのインストールに適用するためのプラグイン。
の使用 コマンドライン または コンポーザー カスタムパッチを適用します。
カスタム パッチ ファイルを作成する方法は多数あります。 次の例では、既知の Git コミットからのパッチの作成に焦点を当てています。
カスタムパッチを作成するには:
-
を作成
patches/composer
ローカルプロジェクトのディレクトリ。 -
パッチに使用する GitHub コミットまたはプルリクエストを特定します。 この例では、を使用します
2d31571
コミット、GitHub の問題にリンク #6474. -
を追加
.patch
または.diff
コミット URL の拡張。 使用方法.diff
ファイルサイズを小さくする場合。 例: https://github.com/magento/magento2/commit/2d31571f1bacd11aa2ec795180abf682e0e9aede.diff -
ページをにファイルとして保存します。
patches/composer
ディレクトリ。 例:github-issue-6474.diff
. -
ファイルを編集して削除
app/code/<VENDOR>/<PACKAGE>
すべてのパスから(相対パスになるように)vendor/<VENDOR>/<PACKAGE>
ディレクトリ。note note NOTE 末尾の空白を自動的に削除したり、新しい行を追加したりするテキストエディターは、パッチを破損する可能性があります。 これらの変更を行うには、単純なテキストエディターを使用します。
次の例は、のすべてのインスタンスを削除した後の前述の DIFF ファイルを示しています app/code/Magento/Payment
:
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;
},
パッチの適用
パッチは、次のいずれかの方法で適用できます。