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

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

これらのファイルは、次の名前でも使用できます 設定タイプ- モジュールの動作の特定の側面をカスタマイズします。

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

このトピックで使用される一般的な用語を次に示します。

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

  • 設定ステージ- ステージは次のように定義されます プライマリ, global、および 面グラフ. 各ステージでは、設定タイプを読み込んで、同じ名前の設定タイプと結合するタイミングを決定します。 例: 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> は、コンポーネントが配置されているベースディレクトリです。 一般的な値は次のとおりです app/code または vendor Commerce インストールディレクトリからの相対パスで指定します。

  • <vendorname> は、コンポーネントのベンダー名です。例えば、Commerceのベンダー名はです magento.

  • <component-type> は次のいずれかです。

    • module-:拡張機能またはモジュール。
    • theme-:テーマ。
    • language-:言語パッケージ。
INFO
現在、テーマはの配下に配置されています <magento_root>/app/design/frontend または <magento_root>/app/design/adminhtml.
  • <component-name>:で定義されているコンポーネントの名前 composer.json.

設定ファイルの結合

設定ファイルのノードは、で定義された特別な属性を持つ完全修飾 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
高度なレポート
プライマリ、グローバル
\Magento\Analytics\Model\Config\Reader
cache.xml
キャッシュタイプの宣言
プライマリ、グローバル
\Magento\Framework\Cache\Config\Data
catalog_attributes.xml
カタログ属性の設定
global
\Magento\Catalog\Model\Attribute\Config\Data
config.php および env.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
Magento_持続 設定ファイル
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
ルート 設定
面グラフ
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\Framework\Config.

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

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

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

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