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 altri module.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 configurazioni adminhtml 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 sono app/code o vendor 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-: estensione o modulo.
    • theme-: tema.
    • language-: pacchetto lingua.
INFO
Attualmente, i temi si trovano in <magento_root>/app/design/frontend o <magento_root>/app/design/adminhtml.

Unione file di configurazione

I nodi nei file di configurazione vengono uniti in base ai relativi XPath completi, per i quali è stato dichiarato come identificatore un attributo speciale definito nell'array $idAttributes. 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.

INFO
È possibile utilizzare la classe \Magento\Framework\Config\Reader\Filesystem per eseguire il debug e comprendere la logica che sta dietro al processo file di configurazione loader e merge configs.

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.

File di configurazione
Descrizione
Fase
Oggetto di configurazione
address_formats.xml
Dichiarazione formato indirizzo
primario, globale
\Magento\Customer\Model\Address\Config
acl.xml
Elenco di controllo di accesso
globale
\Magento\Framework\Acl\AclResource\Provider
analytics.xml
Generazione rapporti avanzata
primario, globale
\Magento\Analytics\Model\Config\Reader
cache.xml
Dichiarazione tipo cache
primario, globale
\Magento\Framework\Cache\Config\Data
catalog_attributes.xml
Configurazione attributi catalogo
globale
\Magento\Catalog\Model\Attribute\Config\Data
config.php e env.php
Configurazione della distribuzione
Questi file sono leggibili/scrivibili dal processore di configurazione interno.
Non ha alcun oggetto, non può essere personalizzato
config.xml
Configurazione del sistema
primario, globale
\Magento\Framework\App\Config
communication.xml
Definisce gli aspetti del sistema di code di messaggi
globale
\Magento\WebapiAsync\Code\Generator\Config\RemoteServiceReader\Communication
crontab.xml
Configura i gruppi cron
globale
\Magento\Cron\Model\Config\Data
cron_groups.xml
Specifica le opzioni per gruppo cron
globale
\Magento\Cron\Model\Groups\Config\Data
db_schema.xml
Schema dichiarativo
globale
Magento\Framework\Setup\Declaration\Schema
di.xml
Configurazione di Iniezione di dipendenza
primario, globale, area
\Magento\Framework\ObjectManager\Config
eav_attributes.xml
Fornisce la configurazione degli attributi EAV
globale
\Magento\Eav\Model\Entity\Attribute\Config
email_templates.xml
Configurazione dei modelli e-mail
globale
\Magento\Email\Model\Template\Config\Data
esconfig.xml
Configurazione parole non consentite nelle impostazioni locali del motore di ricerca
globale
\Magento\Elasticsearch\Model\Adapter\Index\Config\EsConfig
events.xml
Configurazione evento/osservatore
globale, area
\Magento\Framework\Event
export.xml
Esporta configurazione entità
globale
\Magento\ImportExport\Model\Export\Config
extension_attributes.xml
Attributi di estensione
globale
\Magento\Framework\Api\ExtensionAttribute\Config
fieldset.xml
Definisce i set di campi
globale
\Magento\Framework\DataObject\Copy\Config\Reader
indexer.xml
Dichiara gli indicizzatori
globale
\Magento\Framework\Indexer\Config\Reader
import.xml
Dichiara entità di importazione
globale
\Magento\ImportExport\Model\Import\Config
menu.xml
Definisce le voci di menu per l’Amministratore
adminhtml
\Magento\Backend\Model\Menu\Config\Reader
module.xml
Definisce i dati di configurazione del modulo e la dipendenza morbida
primario, globale
\Magento\Framework\Module\ModuleList\Loader
mview.xml
Configurazione MView
primario, globale
\Magento\Framework\Mview\Config\Data
payment.xml
Configurazione del modulo di pagamento
primario, globale
\Magento\Payment\Model\Config
persistent.xml
File di configurazione Magento_Persistent
globale
\Magento\Persistent\Helper\Data
pdf.xml
Impostazioni PDF
globale
\Magento\Sales\Model\Order\Pdf\Config\Reader
product_options.xml
Fornisce la configurazione delle opzioni prodotto
globale
\Magento\Catalog\Model\ProductOptions\Config
product_types.xml
Definisce il tipo di prodotto
globale
\Magento\Catalog\Model\ProductTypes\Config
queue_consumer.xml
Definisce la relazione tra un coda esistente e il relativo consumatore
globale
\Magento\Framework\MessageQueue\Consumer\Config\Xml\Reader
queue_publisher.xml
Definisce lo scambio in cui viene pubblicato un argomento.
globale
\Magento\WebapiAsync\Code\Generator\Config\RemoteServiceReader\Publisher
queue_topology.xml
Definisce le regole di routing dei messaggi, dichiara code e scambi
globale
\Magento\Framework\MessageQueue\Topology\Config\Xml\Reader
reports.xml
Rapporti avanzati
globale
\Magento\Analytics\ReportXml\Config
resources.xml
Definisce la risorsa del modulo
globale
\Magento\Framework\App\ResourceConnection\Config\Reader
routes.xml
Configurazione di Route
area
Magento\Framework\App\Route\Config
sales.xml
Definisce la configurazione del totale delle vendite
globale
\Magento\Sales\Model\Config\Data
search_engine.xml
Fornisce la configurazione del motore di ricerca
globale
Magento\Search\Model\SearchEngine\Config
search_request.xml
Definisce la configurazione della ricerca nel catalogo
globale
\Magento\Framework\Search\Request\Config
sections.xml
Definisce le azioni che attivano l’invalidazione della cache per i blocchi di contenuto privato
front-end
LettoreConfigInvalidazioneSezione
system.xml
Definisce le opzioni per la pagina di configurazione del sistema
adminhtml
\Magento\Framework\App\Config
validation.xml
File di configurazione convalida modulo
globale
\Magento\Framework\Validator\Factory
view.xml
Definisce i valori di configurazione della vista Vendor_Module
globale
\Magento\Framework\View\Config
webapi.xml
Configura un'API Web
globale
\Magento\Webapi\Model\Config
webapi_async.xml
Definisce route personalizzate REST
globale
\Magento\WebapiAsync\Model\ServiceConfig
widget.xml
Definisce i widget
globale
\Magento\Widget\Model\Config\Reader
zip_codes.xml
Definisce il formato del codice postale per ogni paese
globale
\Magento\Directory\Model\Country\Postcode\Config\Data

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:

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.

recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c