Panoramica dei file di configurazione del modulo
Le responsabilità del file di configurazione config.xml
utilizzato nelle versioni precedenti di Commerce sono ora suddivise tra più file, che si trovano in varie directory dei moduli. I file di configurazione multipli di Commerce vengono caricati su richiesta solo quando un modulo richiede un tipo di configurazione specifico.
Puoi utilizzare questi file, detti anche tipi di configurazione, per personalizzare aspetti specifici del comportamento del modulo.
Più moduli possono dichiarare file di configurazione che influiscono sullo stesso tipo di configurazione (ad esempio, eventi) e questi file di configurazione multipli vengono uniti.
Di seguito sono riportati i termini comuni utilizzati in questo argomento:
-
Oggetto di configurazione: libreria o classe Commerce responsabile della definizione e convalida del tipo di configurazione. Ad esempio, l'oggetto di configurazione per
config.xml
è Magento\Framework\App\Config. -
Fase di configurazione - Le fasi sono definite come primaria, globale e area. Ogni fase determina quando il tipo di configurazione viene caricato e unito con tipi di configurazione con lo stesso nome. Ad esempio,
module.xml
file sono uniti ad altrimodule.xml
file. -
Ambito di configurazione: complementare agli stadi di configurazione, un ambito definisce il modello del tipo di configurazione. Ad esempio,
adminhtml
è un ambito area caricato con in fase con le configurazioniadminhtml
di altri moduli. Per ulteriori informazioni, vedere Moduli e aree.
Caricamento della configurazione e unione
Questa sezione descrive come caricare e unire i file di configurazione.
Caricamento dei file di configurazione in Commerce
Commerce carica i file di configurazione nel seguente ordine (tutti i percorsi sono relativi alla directory di installazione di Commerce):
- Configurazione primaria (app/etc/di.xml). Questo file viene utilizzato per avviare Commerce.
- Configurazioni globali dai moduli (
<your component base dir>/<vendorname>/<component-type>-<component-name>/etc/*.xml
). Raccoglie determinati file di configurazione da tutti i moduli e li unisce. - Configurazione specifica dell'area dai moduli (
<your component base dir>/<vendorname>/<component-type>-<component-name>/etc/<area>/*.xml
). Raccoglie i file di configurazione da tutti i moduli e li unisce nella configurazione globale. Alcune configurazioni specifiche per l’area possono ignorare o estendere la configurazione globale.
dove
-
<your component base dir>
è la directory di base in cui si trova il componente. I valori tipici sonoapp/code
ovendor
relativi alla directory di installazione di Commerce. -
<vendorname>
è il nome del fornitore del componente; ad esempio, il nome del fornitore di Commerce èmagento
. -
<component-type>
è uno dei seguenti:module-
: un'estensione o un modulo.theme-
:Tema.language-
: pacchetto lingua.
<magento_root>/app/design/frontend
o <magento_root>/app/design/adminhtml
.<component-name>
: nome del componente, come definito in composer.json.
Unione file di configurazione
I nodi nei file di configurazione vengono uniti in base ai rispettivi XPath completi, che hanno un attributo speciale definito nell'array $idAttributes
dichiarato come identificatore. Questo identificatore deve essere univoco per tutti i nodi nidificati sotto lo stesso nodo principale.
Algoritmo di unione delle applicazioni Commerce:
- Se gli identificatori dei nodi sono uguali (o se non è definito alcun identificatore), tutto il contenuto sottostante nel nodo (attributi, nodi secondari e contenuto scalare) viene sovrascritto.
- Se gli identificatori dei nodi non sono uguali, il nodo è un nuovo elemento figlio del nodo principale.
- Se il documento originale ha più nodi con lo stesso identificatore, viene attivato un errore perché gli identificatori non possono essere distinti.
Dopo aver unito i file di configurazione, il documento risultante contiene tutti i nodi dei file originali.
Tipi di configurazione, oggetti e interfacce
Nelle sezioni seguenti vengono fornite informazioni sui tipi di configurazione, sugli oggetti di configurazione corrispondenti e sulle interfacce che è possibile utilizzare per lavorare con gli oggetti:
Tipi di configurazione e oggetti
Nella tabella seguente vengono illustrati i tipi di configurazione e gli oggetti di configurazione Commerce a cui si riferiscono.
address_formats.xml
analytics.xml
catalog_attributes.xml
config.php
e 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
sales.xml
search_engine.xml
search_request.xml
sections.xml
system.xml
view.xml
webapi_async.xml
zip_codes.xml
Interfacce di configurazione
È possibile interagire con i file di configurazione utilizzando le interfacce in Magento\Framework\Config.
Puoi usare queste interfacce se crei un tipo di configurazione.
Magento\Framework\Config
fornisce le seguenti interfacce:
- Framework\Config\ConverterInterface, che converte l'XML in una rappresentazione di matrice in memoria delle configurazioni.
- Framework\Config\DataInterface, che recupera i dati di configurazione in un ambito specificato.
- Framework\Config\FileResolverInterface, che identifica il percorso dei file da leggere da Magento\Framework\Config\ReaderInterface.
- Framework\Config\ReaderInterface, che legge i dati di configurazione dall'archivio e seleziona l'archivio da cui legge.
In altre parole, il file system, il database o altri archivi uniscono i file di configurazione in base alle regole di unione e convalidano i file di configurazione con gli schemi di convalida.
- Framework\Config\SchemaLocatorInterface, che individua lo schema XSD.
- Framework\Config\ScopeListInterface, che restituisce un elenco di ambiti.
- Framework\Config\ValidationStateInterface, che recupera lo stato di convalida.