モジュール設定ファイルの概要

以前のバージョンのCommerceで使用されていたconfig.xml設定ファイルの責任は、様々なモジュールディレクトリにある複数のファイルに分割されるようになりました。 Commerceの複数の設定ファイルは、モジュールが特定の設定タイプをリクエストした場合にのみ、オンデマンドで読み込まれます。

これらのファイル(設定タイプ​とも呼ばれます)を使用して、モジュールの動作の特定の側面をカスタマイズできます。

複数のモジュールで、同じ設定タイプ(イベントなど)に影響を与える設定ファイルを宣言でき、これらの複数の設定ファイルがマージされます。

このトピックで使用される一般的な用語は次のとおりです。

  • 設定オブジェクト – 設定タイプの定義と検証を担当するCommerce ライブラリまたはクラス。 例えば、config.xmlの設定オブジェクトはMagento\Framework\App\Configです。

  • 設定ステージ - ステージは​primaryglobalarea​として定義されます。 各ステージは、設定タイプが読み込まれ、同じ名前の設定タイプと結合されるタイミングを決定します。 例えば、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-:言語パッケージ。
INFO
現在、テーマは<magento_root>/app/design/frontendまたは<magento_root>/app/design/adminhtmlの下にあります。
  • <component-name>: composer.jsonで定義されているコンポーネントの名前。

設定ファイルの結合

設定ファイル内のノードは、完全修飾XPathに基づいてマージされます。このXPathには、$idAttributes配列で定義された特殊属性が識別子として宣言されています。 この識別子は、同じ親ノードの下にネストされたすべてのノードに対して一意である必要があります。

Commerce アプリケーションの結合アルゴリズム:

  • ノード識別子が同じ場合(または識別子が定義されていない場合)、ノード内のすべての基になるコンテンツ(属性、子ノード、スカラーのコンテンツ)が上書きされます。
  • ノード識別子が等しくない場合、ノードは親ノードの新しい子になります。
  • 元の文書に同じ識別子を持つ複数のノードがある場合、識別子を区別できないため、エラーがトリガーされます。

設定ファイルを結合すると、元のファイルのすべてのノードが結果のドキュメントに含まれます。

INFO
\Magento\Framework\Config\Reader\Filesystem クラスを使用して、構成ファイル ローダーおよび結合の構成 プロセスの背後にあるロジックをデバッグおよび理解できます。

設定の種類、オブジェクト、インターフェイス

次の節では、設定タイプ、対応する設定オブジェクト、およびオブジェクトの操作に使用できるインターフェイスに関する情報を示します。

設定タイプとオブジェクト

次の表に、各設定タイプと、それに関連するCommerce設定オブジェクトを示します。

設定ファイル
説明
ステージ
設定オブジェクト
address_formats.xml
アドレス形式宣言
プライマリ、グローバル
\Magento\Customer\Model\Address\Config
acl.xml
​ アクセス制御リスト ​
グローバル
\Magento\Framework\Acl\AclResource\Provider
analytics.xml
高度なレポート ​
プライマリ、グローバル
\Magento\Analytics\Model\Config\Reader
cache.xml
キャッシュタイプの宣言
プライマリ、グローバル
\Magento\Framework\Cache\Config\Data
catalog_attributes.xml
カタログ属性設定
グローバル
\Magento\Catalog\Model\Attribute\Config\Data
config.phpenv.php
​ デプロイメント設定
これらのファイルは、内部コンフィギュレーションプロセッサーによって読み取り/書き込みが可能です。
オブジェクトがありません。カスタマイズできません
config.xml
システム設定
プライマリ、グローバル
\Magento\Framework\App\Config
communication.xml
​ メッセージキューシステムの側面を定義
グローバル
\Magento\WebapiAsync\Code\Generator\Config\RemoteServiceReader\Communication
crontab.xml
cron グループを設定
グローバル
\Magento\Cron\Model\Config\Data
cron_groups.xml
cron グループのオプションを指定
グローバル
\Magento\Cron\Model\Groups\Config\Data
db_schema.xml
宣言型スキーマ ​
グローバル
Magento\Framework\Setup\Declaration\Schema
di.xml
依存関係インジェクション ​設定
プライマリ、グローバル、エリア
\Magento\Framework\ObjectManager\Config
eav_attributes.xml
EAV属性設定を提供します
グローバル
\Magento\Eav\Model\Entity\Attribute\Config
email_templates.xml
メールテンプレート設定
グローバル
\Magento\Email\Model\Template\Config\Data
esconfig.xml
検索エンジンロケールのストップワード設定
グローバル
\Magento\Elasticsearch\Model\Adapter\Index\Config\EsConfig
events.xml
イベント/オブザーバー設定
グローバル、エリア
\Magento\Framework\Event
export.xml
エンティティ設定の書き出し
グローバル
\Magento\ImportExport\Model\Export\Config
extension_attributes.xml
拡張機能の属性
グローバル
\Magento\Framework\Api\ExtensionAttribute\Config
fieldset.xml
フィールドセットの定義
グローバル
\Magento\Framework\DataObject\Copy\Config\Reader
indexer.xml
​ インデクサーを宣言
グローバル
\Magento\Framework\Indexer\Config\Reader
import.xml
インポートエンティティを宣言
グローバル
\Magento\ImportExport\Model\Import\Config
menu.xml
管理者のメニュー項目を定義します
adminhtml
\Magento\Backend\Model\Menu\Config\Reader
module.xml
モジュール設定データとソフト依存関係を定義します
プライマリ、グローバル
\Magento\Framework\Module\ModuleList\Loader
mview.xml
MView設定
プライマリ、グローバル
\Magento\Framework\Mview\Config\Data
payment.xml
支払いモジュール設定
プライマリ、グローバル
\Magento\Payment\Model\Config
persistent.xml
Magento_Persistent設定ファイル
グローバル
\Magento\Persistent\Helper\Data
pdf.xml
PDFの設定
グローバル
\Magento\Sales\Model\Order\Pdf\Config\Reader
product_options.xml
製品オプション設定を提供します
グローバル
\Magento\Catalog\Model\ProductOptions\Config
product_types.xml
製品タイプの定義
グローバル
\Magento\Catalog\Model\ProductTypes\Config
queue_consumer.xml
既存のキューとそのコンシューマーとの関係を定義します
グローバル
\Magento\Framework\MessageQueue\Consumer\Config\Xml\Reader
queue_publisher.xml
​ トピックが公開される取引所を定義します。
グローバル
\Magento\WebapiAsync\Code\Generator\Config\RemoteServiceReader\Publisher
queue_topology.xml
​ メッセージのルーティングルールを定義し、キューと交換を宣言します
グローバル
\Magento\Framework\MessageQueue\Topology\Config\Xml\Reader
reports.xml
詳細レポート ​
グローバル
\Magento\Analytics\ReportXml\Config
resources.xml
モジュールリソースを定義します
グローバル
\Magento\Framework\App\ResourceConnection\Config\Reader
routes.xml
​ ルート ​設定
エリア
Magento\Framework\App\Route\Config
sales.xml
売上合計の設定を定義
グローバル
\Magento\Sales\Model\Config\Data
search_engine.xml
検索エンジン設定を提供します
グローバル
Magento\Search\Model\SearchEngine\Config
search_request.xml
カタログ検索設定の定義
グローバル
\Magento\Framework\Search\Request\Config
sections.xml
プライベートコンテンツブロックのトリガーキャッシュ無効化アクションを定義します
フロントエンド
SectionInvalidationConfigReader
system.xml
システム設定ページのオプションを定義します
adminhtml
\Magento\Framework\App\Config
validation.xml
モジュール検証設定ファイル
グローバル
\Magento\Framework\Validator\Factory
view.xml
Vendor_Module ビューの設定値を定義します
グローバル
\Magento\Framework\View\Config
webapi.xml
Web APIを設定
グローバル
\Magento\Webapi\Model\Config
webapi_async.xml
REST カスタムルートを定義
グローバル
\Magento\WebapiAsync\Model\ServiceConfig
widget.xml
ウィジェットの定義
グローバル
\Magento\Widget\Model\Config\Reader
zip_codes.xml
各国の郵便番号を定義します
グローバル
\Magento\Directory\Model\Country\Postcode\Config\Data

設定インターフェイス

Magento\Framework\Configのインターフェイスを使用して、設定ファイルを操作できます。

これらのインターフェイスは、設定タイプを作成する場合に使用できます。

Magento\Framework\Configは次のインターフェイスを提供します。

つまり、ファイルシステム、データベース、その他のストレージは、結合ルールに従って設定ファイルを結合し、検証スキーマを使用して設定ファイルを検証します。

recommendation-more-help
commerce-operations-help-configuration