Überblick über die Modulkonfigurationsdateien
Die Zuständigkeiten der in früheren Versionen von Commerce verwendeten Konfigurationsdatei config.xml
sind jetzt auf mehrere Dateien aufgeteilt, die sich in verschiedenen Modulverzeichnissen befinden. Commerces mehrere Konfigurationsdateien werden nur bei Bedarf geladen, wenn ein Modul einen bestimmten Konfigurationstyp anfordert.
Sie können diese Dateien - auch als Konfigurationstypen 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 verschiedenen Konfigurationsdateien werden zusammengeführt.
In diesem Thema werden häufig Begriffe verwendet:
-
Konfigurationsobjekt: Die Commerce-Bibliothek oder -Klasse, die für die Definition und Validierung des Konfigurationstyps verantwortlich ist. Beispielsweise ist das Konfigurationsobjekt für
config.xml
Magento\Framework\App\Config. -
Konfigurationsphase: Phasen werden als primary, global und area definiert. Jede Phase bestimmt, wann der Konfigurationstyp geladen und mit denselben benannten Konfigurationstypen zusammengeführt wird. Beispielsweise werden
module.xml
-Dateien mit anderenmodule.xml
-Dateien zusammengeführt. -
Konfigurationsbereich - Ergänzend zu den Konfigurationsphasen definiert ein Bereich das Konfigurationstypmodell. Beispiel:
adminhtml
ist ein Bereichsbereich, der zum 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 erläutert, wie Konfigurationsdateien geladen und zusammengeführt werden.
Laden von Konfigurationsdateien durch Commerce
Commerce lädt Konfigurationsdateien in der folgenden Reihenfolge (alle Pfade beziehen sich auf Ihren Commerce-Installationsordner):
- Primäre Konfiguration (app/etc/di.xml). Diese Datei wird zum Bootstrapping von Commerce verwendet.
- Globale Konfigurationen von Modulen (
<your component base dir>/<vendorname>/<component-type>-<component-name>/etc/*.xml
). Erfasst bestimmte Konfigurationsdateien aus allen Modulen und führt sie zusammen. - Gebietsspezifische Konfiguration von Modulen (
<your component base dir>/<vendorname>/<component-type>-<component-name>/etc/<area>/*.xml
). Erfasst Konfigurationsdateien aus allen Modulen und führt sie in der globalen Konfiguration zusammen. Einige gebietsspezifische Konfigurationen können die globale Konfiguration überschreiben oder erweitern.
where
-
<your component base dir>
ist das Basisverzeichnis, in dem sich Ihre Komponente befindet. Typische Werte sindapp/code
odervendor
relativ zum Commerce-Installationsordner. -
<vendorname>
ist der Name des Anbieters der Komponente. Beispielsweise lautet der Name des Anbieters von Commercemagento
. -
<component-type>
ist einer der folgenden Werte:module-
: Eine Erweiterung oder ein Modul.theme-
: Design.language-
: Sprachpaket.
<magento_root>/app/design/frontend
oder <magento_root>/app/design/adminhtml
.<component-name>
: Name Ihrer Komponente gemäß der Definition in composer.json.
Zusammenführen von Konfigurationsdateien
Knoten in Konfigurationsdateien werden basierend auf ihren vollständig qualifizierten XPaths zusammengeführt, wobei ein spezielles Attribut, das im Array $idAttributes
definiert ist, als Kennung deklariert ist. Diese Kennung muss für alle Knoten eindeutig sein, die unter demselben übergeordneten Knoten verschachtelt sind.
Commerce-Anwendungszusammenführungsalgorithmus:
- 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 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 identifiziert werden können.
Nachdem die Konfigurationsdateien zusammengeführt wurden, enthält das resultierende Dokument alle Knoten aus den Originaldateien.
Konfigurationstypen, -objekte und -schnittstellen
Die folgenden Abschnitte enthalten Informationen zu Konfigurationstypen, den zugehörigen Konfigurationsobjekten und Schnittstellen, die Sie zum Arbeiten mit den Objekten verwenden können:
Konfigurationstypen und -objekte
Die folgende Tabelle zeigt jeden Konfigurationstyp und das Commerce-Konfigurationsobjekt, auf das er sich bezieht.
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_request.xml
sections.xml
system.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 Konfigurationstyperstellen.
Magento\Framework\Config
bietet die folgenden Schnittstellen:
- Framework\Config\ConverterInterface, das die XML 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 sollen.
- Framework\Config\ReaderInterface, das die Konfigurationsdaten aus dem Speicher liest und den Speicher auswählt, aus dem sie gelesen werden.
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 Validierungsschemas.
- Framework\Config\SchemaLocatorInterface, das das XSD-Schema lokalisiert.
- Framework\Config\ScopeListInterface, das eine Liste von Bereichen zurückgibt.
- Framework\Config\ValidationStateInterface, das den Validierungsstatus abruft.