Überblick über die Modulkonfigurationsdateien
Die Zuständigkeiten der config.xml
Konfigurationsdatei, die in früheren Versionen von Commerce verwendet wurde, sind jetzt auf mehrere Dateien aufgeteilt, die sich in verschiedenen Modulverzeichnissen befinden. Die verschiedenen Konfigurationsdateien von Commerce werden nur bei Bedarf geladen, wenn ein Modul einen bestimmten Konfigurationstyp anfordert.
Sie können diese Dateien - auch als "" bezeichnet verwenden, um bestimmte Aspekte des Verhaltens Ihres Moduls anzupassen.
Mehrere Module können Konfigurationsdateien deklarieren, die denselben Konfigurationstyp betreffen (z. B. Ereignisse), und diese mehreren Konfigurationsdateien werden zusammengeführt.
In diesem Thema werden häufig folgende Begriffe verwendet:
-
Konfigurationsobjekt - Die Commerce-Bibliothek oder -Klasse, die für die Definition und Validierung des Konfigurationstyps verantwortlich ist. Das Konfigurationsobjekt für
config.xml
ist beispielsweise Magento\Framework\App\Config. -
Konfigurationsphase - Phasen werden als primär, global und area definiert. Jede Phase bestimmt, wann der Konfigurationstyp geladen und mit gleichnamigen Konfigurationstypen zusammengeführt wird. Beispielsweise werden
module.xml
Dateien mit anderenmodule.xml
zusammengeführt. -
Konfigurationsbereich - Ergänzend zu den Konfigurationsphasen definiert ein Bereich das Konfigurationstypmodell.
adminhtml
ist beispielsweise ein Bereichsbereich, der zu einem späteren Zeitpunkt mit denadminhtml
-Konfigurationen anderer Module geladen wird. Weitere Informationen finden Sie unter Module und Bereiche.
Laden und Zusammenführen von Konfigurationen
In diesem Abschnitt wird beschrieben, wie Konfigurationsdateien geladen und zusammengeführt werden.
So lädt Commerce Konfigurationsdateien
Commerce lädt Konfigurationsdateien in der folgenden Reihenfolge (alle Pfade beziehen sich auf Ihr Commerce-Installationsverzeichnis):
- Primäre Konfiguration (app/etc/di.xml) Diese Datei wird zum Bootstrapping von Commerce verwendet.
- Globale Konfigurationen aus Modulen (
<your component base dir>/<vendorname>/<component-type>-<component-name>/etc/*.xml
). Sammelt bestimmte Konfigurationsdateien aus allen Modulen und führt sie zusammen. - Bereichsspezifische Konfiguration aus Modulen (
<your component base dir>/<vendorname>/<component-type>-<component-name>/etc/<area>/*.xml
). Sammelt Konfigurationsdateien aus allen Modulen und führt sie in der globalen Konfiguration zusammen. Einige bereichsspezifische Konfigurationen können die globale Konfiguration überschreiben oder erweitern.
Hierbei gilt
-
<your component base dir>
ist der Basisordner, in dem sich die Komponente befindet. Typische Werte sindapp/code
odervendor
relativ zum Commerce-Installationsverzeichnis. -
<vendorname>
ist der Anbietername der Komponente; beispielsweise ist der Anbietername von Commercemagento
. -
<component-type>
ist eine der folgenden:module-
: Eine Erweiterung oder ein Modul.theme-
: Design.language-
: Sprachpaket.
<magento_root>/app/design/frontend
oder <magento_root>/app/design/adminhtml
.<component-name>
: Name der Komponente wie in composer.json definiert.
Zusammenführen von Konfigurationsdateien
Knoten in Konfigurationsdateien werden auf der Grundlage ihrer vollqualifizierten XPaths zusammengeführt, für die ein spezielles -Attribut in $idAttributes
als Kennung deklarierten Array definiert ist. Diese Kennung muss für alle Knoten eindeutig sein, die unter demselben übergeordneten Knoten verschachtelt sind.
Zusammenführungsalgorithmus der Commerce-Anwendung:
- Wenn Knotenkennungen gleich sind (oder keine Kennung definiert ist), wird der gesamte zugrunde liegende Inhalt im Knoten (Attribute, untergeordnete Knoten und skalare Inhalte) überschrieben.
- Wenn die Knotenkennungen nicht gleich sind, ist der Knoten ein neues untergeordnetes Element des übergeordneten Knotens.
- Wenn das Originaldokument mehrere Knoten mit derselben Kennung enthält, wird ein Fehler ausgelöst, da die Kennungen nicht unterschieden werden können.
Nach dem Zusammenführen der Konfigurationsdateien enthält das resultierende Dokument alle Knoten aus den Originaldateien.
Konfigurationstypen, Objekte und Schnittstellen
Die folgenden Abschnitte enthalten Informationen zu Konfigurationstypen, den entsprechenden Konfigurationsobjekten und Schnittstellen, die Sie für die Arbeit mit den Objekten verwenden können:
Konfigurationstypen und Objekte
In der folgenden Tabelle sind die einzelnen Konfigurationstypen und das Commerce-Konfigurationsobjekt aufgeführt, auf das sie sich beziehen.
address_formats.xml
analytics.xml
catalog_attributes.xml
config.php
und env.php
communication.xml
eav_attributes.xml
email_templates.xml
esconfig.xml
extension_attributes.xml
menu.xml
module.xml
product_options.xml
queue_consumer.xml
queue_publisher.xml
queue_topology.xml
resources.xml
search_engine.xml
search_request.xml
sections.xml
system.xml
validation.xml
view.xml
webapi_async.xml
zip_codes.xml
Konfigurationsoberflächen
Sie können mit Konfigurationsdateien über Schnittstellen unter Magento\Framework\Config interagieren.
Sie können diese Schnittstellen verwenden, wenn Sie einen Konfigurationstyp erstellen.
Magento\Framework\Config
bietet die folgenden Schnittstellen:
- Framework\Config\ConverterInterface, das den XML-Code in eine speicherinterne Array-Darstellung der Konfigurationen konvertiert.
- Framework\Config\DataInterface, das die Konfigurationsdaten in einem bestimmten Umfang abruft.
- Framework\Config\FileResolverInterface, das den Speicherort der Dateien angibt, die von Magento\Framework\Config\ReaderInterface gelesen werden.
- Framework\Config\ReaderInterface, das die Konfigurationsdaten aus dem Speicher liest und den Speicher auswählt, aus dem er liest.
Das heißt, das Dateisystem, die Datenbank und der andere Speicher führen die Konfigurationsdateien gemäß den Zusammenführungsregeln zusammen und validieren die Konfigurationsdateien mit den Validierungsschemata.
- Framework\Config\SchemaLocatorInterface, das das XSD-Schema findet.
- Framework\Config\ScopeListInterface, das eine Liste von Bereichen zurückgibt.
- Framework\Config\ValidationStateInterface, das den Validierungsstatus abruft.