パッチの動作

WARNING
実稼動環境にデプロイする前に、ステージング環境または開発環境で、すべてのパッチをテストすることを強くお勧めします。 また、パッチを適用する前にデータをバックアップすることを強くお勧めします。 ファイルシステムのバックアップとロールバックを参照してください。

パッチ(または差分)ファイルは、次の点に注意するテキストファイルです。

  • 変更するファイル。
  • 変更を開始するライン番号と変更するライン数。
  • 入れ替える新しいコード。

パッチプログラムを実行すると、このファイルが読み込まれ、指定された変更がファイルに加えられます。

パッチには次の 3 種類があります。

  • ホットフィックス - Adobeが セキュリティセンターに公開するパッチ。
  • 個別パッチ - Adobe Commerce サポートが個別に作成および配布するパッチ。
  • カスタムパッチ - Git コミットから作成できる非公式パッチ。

ホットフィックス

ホットフィックスは、多くのマーチャントに影響を与える影響の大きいセキュリティ修正または品質修正を含むパッチです。 これらの修正は、該当するマイナーバージョンの次のパッチリリースに適用されます。 Adobeは、必要に応じてホットフィックスをリリースします。

ホットフィックスは、 セキュリティセンターで入手できます。 ページの指示に従って、バージョンとインストールの種類に応じてパッチファイルをダウンロードします。 コマンドラインまたは Composer を使用して、ホットフィックス パッチを適用します。

NOTE
ホットフィックスには、後方互換性のない変更が含まれている場合があります。

個々のパッチ

個々のパッチには、特定の問題に対する影響の低い品質修正が含まれています。 これらの修正は、最新のサポートされているマイナーバージョン(例:2.4.x)に適用されますが、以前のサポートされているマイナーバージョン(例:2.3.x)には含まれていない場合があります。 Adobeでは、必要に応じて個別のパッチをリリースします。

Quality Patches Tool を使用して、個別のパッチを適用します。

NOTE
個々のパッチには、後方互換性のない変更は含まれません。

カスタムパッチ

Adobeエンジニアリングチームが、Adobe Commerce Composer リリースで GitHub に加えられたバグ修正を含めるのに時間がかかる場合があります。 それまでの間、GitHub からパッチを作成し、cweagans/composer-patches プラグインを使用して Composer ベースのインストールに適用できます。

コマンドラインまたは Composer を使用して、カスタムパッチを適用します。

カスタム パッチ ファイルを作成する方法は多数あります。 次の例では、既知の Git コミットからのパッチの作成に焦点を当てています。

カスタムパッチを作成するには:

  1. ローカルプロジェクトに patches/composer ディレクトリを作成します。

  2. パッチに使用する GitHub コミットまたはプルリクエストを特定します。 この例では、GitHub の問題 #6474 にリンクされた 2d31571 コミットを使用しています。

  3. コミット URL に .patch または .diff の拡張子を追加します。 ファイルサイズを小さくするには、.diff を使用します。 例:https://github.com/magento/magento2/commit/2d31571f1bacd11aa2ec795180abf682e0e9aede.diff

  4. patches/composer ディレクトリにページをファイルとして保存します。 例:github-issue-6474.diff

  5. ファイルを編集し、すべてのパスから app/code/<VENDOR>/<PACKAGE> を削除して、vendor/<VENDOR>/<PACKAGE> ディレクトリに対する相対パスにします。

    note note
    NOTE
    末尾の空白を自動的に削除したり、新しい行を追加したりするテキストエディターは、パッチを破損する可能性があります。 これらの変更を行うには、単純なテキストエディターを使用します。

次の例は、app/code/Magento/Payment のすべてのインスタンスを削除した後の前述の DIFF ファイルを示しています。

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;
             },

パッチの適用

パッチは、次のいずれかの方法で適用できます。

NOTE
クラウドインフラストラクチャプロジェクト上のAdobe Commerceにパッチを適用するには、Commerce on Cloud ガイド 🔗 の パッチの適用 を参照してください。
recommendation-more-help
83a60e0e-8849-4685-a8cd-c129ecd795ea