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

以前のバージョンの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-:言語パッケージ。
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
アクセス制御リスト
global
\Magento\Framework\Acl\AclResource\Provider
analytics.xml
[ 詳細レポート ]https://developer.adobe.com/commerce/php/development/advanced-reporting/data-collection/)
プライマリ、グローバル
\Magento\Analytics\Model\Config\Reader
cache.xml
キャッシュタイプの宣言
プライマリ、グローバル
\Magento\Framework\Cache\Config\Data
catalog_attributes.xml
カタログ属性の設定
global
\Magento\Catalog\Model\Attribute\Config\Data
config.phpenv.php
デプロイメント設定
これらのファイルは、内部の config プロセッサによって読み取り/書き込み可能です。
オブジェクトがないため、カスタマイズできません
config.xml
システム設定
プライマリ、グローバル
\Magento\Framework\App\Config
communication.xml
メッセージキューシステムの側面を定義します
global
\Magento\WebapiAsync\Code\Generator\Config\RemoteServiceReader\Communication
crontab.xml
Cron グループを設定
global
\Magento\Cron\Model\Config\Data
cron_groups.xml
cron グループオプションを指定
global
\Magento\Cron\Model\Groups\Config\Data
db_schema.xml
宣言型スキーマ
global
Magento\Framework\Setup\Declaration\Schema
di.xml
依存関係の挿入設定
プライマリ,グローバル,領域
\Magento\Framework\ObjectManager\Config
eav_attributes.xml
EAV 属性の設定を提供
global
\Magento\Eav\Model\Entity\Attribute\Config
email_templates.xml
メールテンプレートの設定
global
\Magento\Email\Model\Template\Config\Data
esconfig.xml
検索エンジンのロケールストップワードの設定
global
\Magento\Elasticsearch\Model\Adapter\Index\Config\EsConfig
events.xml
イベント/オブザーバー設定
グローバル、領域
\Magento\Framework\Event
export.xml
エンティティ設定をエクスポート
global
\Magento\ImportExport\Model\Export\Config
extension_attributes.xml
拡張機能の属性
global
\Magento\Framework\Api\ExtensionAttribute\Config
fieldset.xml
フィールドセットを定義します
global
\Magento\Framework\DataObject\Copy\Config\Reader
indexer.xml
インデクサーを宣言します
global
\Magento\Framework\Indexer\Config\Reader
import.xml
インポートエンティティを宣言します
global
\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
Configuration_PersistentMagentoファイル
global
\Magento\Persistent\Helper\Data
pdf.xml
PDF設定
global
\Magento\Sales\Model\Order\Pdf\Config\Reader
product_options.xml
製品オプションを設定できます
global
\Magento\Catalog\Model\ProductOptions\Config
product_types.xml
製品タイプを定義します
global
\Magento\Catalog\Model\ProductTypes\Config
queue_consumer.xml
既存のキューとそのコンシューマーの関係を定義します
global
\Magento\Framework\MessageQueue\Consumer\Config\Xml\Reader
queue_publisher.xml
トピックが公開される取引所を定義します。
global
\Magento\WebapiAsync\Code\Generator\Config\RemoteServiceReader\Publisher
queue_topology.xml
メッセージルーティングルールを定義し、キューと交換を宣言する
global
\Magento\Framework\MessageQueue\Topology\Config\Xml\Reader
reports.xml
詳細レポート
global
\Magento\Analytics\ReportXml\Config
resources.xml
モジュールリソースを定義します
global
\Magento\Framework\App\ResourceConnection\Config\Reader
routes.xml
Route 設定
面グラフ
Magento\Framework\App\Route\Config
sales.xml
売上合計のコンフィギュレーションを定義します
global
\Magento\Sales\Model\Config\Data
search_engine.xml
検索エンジン設定を提供します。
global
Magento\Search\Model\SearchEngine\Config
search_request.xml
カタログ検索設定を定義します
global
\Magento\Framework\Search\Request\Config
sections.xml
プライベートコンテンツブロックのキャッシュ無効化をトリガーにするアクションを定義します
フロントエンド
SectionInvalidationConfigReader
system.xml
システム設定ページのオプションを定義します
adminhtml
\Magento\Framework\App\Config
validation.xml
モジュール検証設定ファイル
global
\Magento\Framework\Validator\Factory
view.xml
Vendor_Module 表示設定値を定義します
global
\Magento\Framework\View\Config
webapi.xml
Web API を設定
global
\Magento\Webapi\Model\Config
webapi_async.xml
REST カスタムルートを定義
global
\Magento\WebapiAsync\Model\ServiceConfig
widget.xml
ウィジェットを定義します
global
\Magento\Widget\Model\Config\Reader
zip_codes.xml
国ごとに郵便番号を定義します
global
\Magento\Directory\Model\Country\Postcode\Config\Data

設定インターフェイス

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

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

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

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

recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c