パッチの動作

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

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

  • 変更するファイル。
  • 変更を開始する行番号と変更する行数。
  • スワップする新しいコード。

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

パッチには3つのタイプがあります。

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

ホットフィックス

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

修正プログラムは、​ セキュリティ センターで見つけることができます。 パッチファイルをダウンロードするには、バージョンとインストールタイプに応じて、ページの指示に従います。 ​ コマンドライン ​またはComposerを使用して、ホットフィックス パッチを適用します。

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

個別のパッチ

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

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

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

カスタムパッチ

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

IMPORTANT
Adobeでは、この方法を使用したAdobeが提供する公式のパッチの適用はサポートされていません。 ご自身のリスクで次の方法を使用してください。 公式パッチを適用するには、Quality Patches Toolを使用します。 カスタムパッチをデプロイする前に、必ず包括的なテストを実行してください。

カスタムパッチを適用するには、​ コマンドライン ​または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
    末尾の空白を自動的に削除したり、新しい行を追加したりするテキストエディターは、パッチを壊す可能性があります。 単純なテキストエディターを使用して、これらの変更を行います。

次の例は、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 on Cloud Infrastructure プロジェクトにパッチを適用するには、Commerce on Cloud ガイド​の「​ パッチを適用」を参照してください。
recommendation-more-help
commerce-operations-help-upgrade