モジュール設定ファイルの概要
以前のバージョンのCommerceで使用されていた config.xml
設定ファイルの役割は、様々なモジュールディレクトリに配置された複数のファイルに分割されるようになりました。 Commerceの複数の設定ファイルは、モジュールが特定の設定タイプをリクエストした場合にのみ、オンデマンドで読み込まれます。
これらのファイル(「設定タイプ とも呼ばれます を使用して、モジュールの動作の特定の側面をカスタマイズできます。
複数のモジュールで、同じ設定タイプ(イベントなど)に影響を与える設定ファイルを宣言でき、これらの複数の設定ファイルは結合されます。
このトピックで使用される一般的な用語を次に示します。
-
設定オブジェクト – 設定タイプの定義と検証を担当するCommerce ライブラリまたはクラス。 例えば、
config.xml
の設定オブジェクトは Magento\Framework\App\Config です。 -
設定ステージ - ステージは プライマリ、グローバル および 領域 として定義されます。 各ステージでは、設定タイプを読み込んで、同じ名前の設定タイプと結合するタイミングを決定します。 例えば、
module.xml
ファイルは他のmodule.xml
ファイルと結合されます。 -
設定スコープ – 設定ステージを補完し、スコープは設定タイプモデルを定義します。 例えば、
adminhtml
は、他のモジュールのadminhtml
設定を使用して、ステージでと読み込まれるエリア範囲です。 詳しくは、 モジュールとエリアを参照してください。
設定の読み込みと結合
この節では、設定ファイルの読み込みと結合方法について説明します。
Commerceによる設定ファイルの読み込み方法
Commerceは、次の順序で設定ファイルを読み込みます(すべてのパスは、Commerce インストールディレクトリを基準とした相対パスです)。
- プライマリ構成(app/etc/di.xml)。 このファイルは、Commerceをブートストラップするために使用されます。
- モジュール(
<your component base dir>/<vendorname>/<component-type>-<component-name>/etc/*.xml
)からのグローバル設定。 すべてのモジュールから特定の設定ファイルを収集し、それらを結合します。 - モジュール(
<your component base dir>/<vendorname>/<component-type>-<component-name>/etc/<area>/*.xml
)からの領域固有の設定。 すべてのモジュールから構成ファイルを収集し、グローバル構成に結合します。 一部の領域固有の設定では、グローバル設定をオーバーライドまたは拡張できます。
ここで、
-
<your component base dir>
は、コンポーネントが配置されているベースディレクトリです。 一般的な値は、Commerce インストールディレクトリを基準とした相対パスであるapp/code
またはvendor
です。 -
<vendorname>
は、コンポーネントのベンダー名です。例えば、Commerceのベンダー名はmagento
です。 -
次の
<component-type>
ずれかです。module-
:拡張機能またはモジュール。theme-
:テーマ。language-
:言語パッケージ。
<magento_root>/app/design/frontend
または <magento_root>/app/design/adminhtml
にあります。<component-name>
: composer.json で定義されているコンポーネントの名前
設定ファイルの結合
設定ファイルのノードは、完全修飾 XPath に基づいて結合されます。この XPath には、識別子として宣言された配列で定義され $idAttributes
特別な属性があります。 この識別子は、同じ親ノードの下にネストされたすべてのノードで一意である必要があります。
Commerce アプリケーション結合アルゴリズム:
- ノード識別子が等しい(または識別子が定義されていない)場合、ノード内の基になるすべてのコンテンツ(属性、子ノード、スカラーコンテンツ)が上書きされます。
- ノードの識別子が等しくない場合、そのノードは親ノードの新しい子になります。
- 元のドキュメントに同じ識別子を持つ複数のノードがある場合、識別子を区別できないのでエラーがトリガーされます。
設定ファイルが結合されると、結合後の文書には元のファイルのすべてのノードが含まれます。
設定のタイプ、オブジェクトおよびインターフェイス
次の節では、設定のタイプ、対応する設定オブジェクトおよびオブジェクトを操作するために使用できるインターフェイスについて説明します。
設定のタイプとオブジェクト
次の表に、各設定タイプと、それに関連するCommerce設定オブジェクトを示します。
analytics.xml
communication.xml
esconfig.xml
queue_consumer.xml
queue_publisher.xml
queue_topology.xml
設定インターフェイス
Magentoファイルは、Configuration\Framework\Config の下のインターフェイスを使用して操作できます。
設定タイプを作成する場合、これらのインターフェイスを使用できます。
Magento\Framework\Config
は次のインターフェイスを提供します。
- Framework\Config\ConverterInterface:XML を設定のメモリ内配列表現に変換します。
- Framework\Config\DataInterface:指定したスコープ内の構成データを取得します。
- Framework\Config\FileResolverInterface:Magento\Framework\Config\ReaderInterface によって読み取られるファイルの場所を識別します。
- Framework\Config\ReaderInterface:ストレージから構成データを読み取り、読み取り元のストレージを選択します。
つまり、ファイルシステム、データベース、その他のストレージは、結合ルールに従って設定ファイルを結合し、検証スキーマを使用して設定ファイルを検証します。
- XSD スキーマを検索する Framework\Config\SchemaLocatorInterface。
- Framework\Config\ScopeListInterface:スコープのリストを返します。
- 検証状態を取得する Framework\Config\ValidationStateInterface。