Ü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.xmlist 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.xmlDateien mit anderenmodule.xmlzusammengeführt. -
Konfigurationsbereich - Ergänzend zu den Konfigurationsphasen definiert ein Bereich das Konfigurationstypmodell.
adminhtmlist 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/codeodervendorrelativ 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.xmlcatalog_attributes.xmlconfig.php und env.phpcommunication.xmleav_attributes.xmlemail_templates.xmlesconfig.xmlextension_attributes.xmlmenu.xmlmodule.xmlproduct_options.xmlqueue_consumer.xmlqueue_publisher.xmlqueue_topology.xmlresources.xmlsearch_engine.xmlsearch_request.xmlsections.xmlsystem.xmlvalidation.xmlview.xmlwebapi_async.xmlzip_codes.xmlKonfigurationsoberflä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.