Översikt över modulkonfigurationsfiler
Ansvarsområdena för konfigurationsfilen config.xml
som används i tidigare versioner av Commerce är nu uppdelade mellan flera filer, som finns i olika modulkataloger. Commerce flera konfigurationsfiler läses bara in på begäran när en modul begär en viss konfigurationstyp.
Du kan använda de här filerna, som även kallas konfigurationstyper, för att anpassa specifika aspekter av modulens beteende.
Flera moduler kan deklarera konfigurationsfiler som påverkar samma konfigurationstyp (till exempel händelser), och dessa flera konfigurationsfiler sammanfogas.
Här följer några vanliga termer som används i det här avsnittet:
-
Konfigurationsobjekt - Commerce-biblioteket eller klassen som ansvarar för att definiera och validera konfigurationstypen. Konfigurationsobjektet för
config.xml
är till exempel Magento\Framework\App\Config. -
Konfigurationsscen - Steg definieras som primär, global och område. Varje steg avgör när konfigurationstypen läses in och sammanfogas med konfigurationstyper med samma namn. Till exempel sammanfogas
module.xml
filer med andramodule.xml
-filer. -
Konfigurationsomfång - Som komplement till konfigurationsfaser definierar ett omfång konfigurationsmodellen.
adminhtml
är till exempel ett områdesomfång som läses in med andra modulersadminhtml
-konfigurationer på scenen. Mer information finns i Moduler och områden.
Inläsning och sammanfogning av konfiguration
I det här avsnittet beskrivs hur konfigurationsfiler läses in och sammanfogas.
Hur Commerce läser in konfigurationsfiler
Commerce läser in konfigurationsfiler i följande ordning (alla sökvägar är relativa till din Commerce installationskatalog):
- Primär konfiguration (app/etc/di.xml). Den här filen används för att starta Commerce.
- Globala konfigurationer från moduler (
<your component base dir>/<vendorname>/<component-type>-<component-name>/etc/*.xml
). Samlar in vissa konfigurationsfiler från alla moduler och sammanfogar dem. - Områdesspecifik konfiguration från moduler (
<your component base dir>/<vendorname>/<component-type>-<component-name>/etc/<area>/*.xml
). Samlar in konfigurationsfiler från alla moduler och sammanfogar dem i den globala konfigurationen. Vissa områdesspecifika konfigurationer kan åsidosätta eller utöka den globala konfigurationen.
där
-
<your component base dir>
är den baskatalog där komponenten finns. Typiska värden ärapp/code
ellervendor
relativa till Commerce installationskatalog. -
<vendorname>
är komponentens leverantörsnamn. Commerce leverantörsnamn är till exempelmagento
. -
<component-type>
är något av följande:module-
: Ett tillägg eller en modul.theme-
: Tema.language-
: Språkpaket.
<magento_root>/app/design/frontend
eller <magento_root>/app/design/adminhtml
.<component-name>
: Komponentens namn enligt definitionen i disposition.json.
Sammanfogning av konfigurationsfil
Noder i konfigurationsfiler sammanfogas baserat på deras kvalificerade XPaths, som har ett särskilt attribut definierat i arrayen $idAttributes
som deklarerats som identifierare. Den här identifieraren måste vara unik för alla noder som är kapslade under samma överordnade nod.
Commerce-algoritm för programsammanslagning:
- Om nodidentifierare är lika (eller om ingen identifierare har definierats) åsidosätts allt underliggande innehåll i noden (attribut, underordnade noder och skalärt innehåll).
- Om nodidentifierare inte är lika är noden en ny underordnad nod till den överordnade noden.
- Om det ursprungliga dokumentet har flera noder med samma identifierare utlöses ett fel eftersom identifierarna inte kan särskiljas.
När konfigurationsfilerna har sammanfogats innehåller det resulterande dokumentet alla noder från originalfilerna.
Konfigurationstyper, objekt och gränssnitt
I följande avsnitt finns information om konfigurationstyper, deras motsvarande konfigurationsobjekt och gränssnitt som du kan använda för att arbeta med objekten:
Konfigurationstyper och objekt
I följande tabell visas varje konfigurationstyp och det konfigurationsobjekt för Commerce som den hör till.
address_formats.xml
analytics.xml
catalog_attributes.xml
config.php
och env.php
communication.xml
di.xml
eav_attributes.xml
esconfig.xml
menu.xml
module.xml
product_options.xml
queue_consumer.xml
queue_publisher.xml
queue_topology.xml
search_engine.xml
search_request.xml
sections.xml
system.xml
view.xml
zip_codes.xml
Konfigurationsgränssnitt
Du kan interagera med konfigurationsfiler med gränssnitt under Magento\Framework\Config.
Du kan använda dessa gränssnitt om du skapar en konfigurationstyp.
Magento\Framework\Config
innehåller följande gränssnitt:
- Framework\Config\ConverterInterface, som konverterar XML till en minnesbaserad matrisrepresentation av konfigurationerna.
- Framework\Config\DataInterface som hämtar konfigurationsdata i ett angivet omfång.
- Framework\Config\FileResolverInterface, som identifierar platsen för filer som ska läsas av Magento\Framework\Config\ReaderInterface.
- Framework\Config\ReaderInterface, som läser konfigurationsdata från lagring och markerar det lagringsutrymme som det läser från.
Det vill säga, filsystemet, databasen, annan lagring, sammanfogar konfigurationsfilerna enligt sammanfogningsreglerna och validerar konfigurationsfilerna med valideringsscheman.
- Framework\Config\SchemaLocatorInterface som hittar XSD-schemat.
- Framework\Config\ScopeListInterface, som returnerar en lista med omfattningar.
- Framework\Config\ValidationStateInterface som hämtar valideringstillståndet.