Ö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.xmlfiler 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/codeellervendorrelativa 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.xmlcatalog_attributes.xmlconfig.php och env.phpcommunication.xmldi.xmleav_attributes.xmlesconfig.xmlmenu.xmlmodule.xmlproduct_options.xmlqueue_consumer.xmlqueue_publisher.xmlqueue_topology.xmlsearch_engine.xmlsearch_request.xmlsections.xmlsystem.xmlview.xmlzip_codes.xmlKonfigurationsgrä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.