Présentation des fichiers de configuration du module

Les responsabilités du fichier de configuration config.xml utilisé dans les versions antérieures de Commerce sont désormais réparties entre plusieurs fichiers, situés dans différents répertoires de module. Commerce charge plusieurs fichiers de configuration à la demande uniquement lorsqu’un module demande un type de configuration spécifique.

Vous pouvez utiliser ces fichiers (également appelés types de configuration) pour personnaliser des aspects spécifiques du comportement de votre module.

Plusieurs modules peuvent déclarer des fichiers de configuration qui affectent le même type de configuration (par exemple, des événements) et ces plusieurs fichiers de configuration sont fusionnés.

Voici les termes courants utilisés dans cette rubrique :

  • Objet de configuration : bibliothèque ou classe Commerce chargée de définir et de valider le type de configuration. Par exemple, l’objet de configuration pour config.xml est Magento\Framework\App\Config.

  • Étape de configuration : les étapes sont définies comme principale, globale et zone. Chaque étape détermine à quel moment le type de configuration est chargé et fusionné avec des types de configuration portant le même nom. Par exemple, les fichiers module.xml sont fusionnés avec d’autres fichiers module.xml.

  • Portée de la configuration : en complément des étapes de configuration, une portée définit le modèle de type de configuration. Par exemple, adminhtml est une étendue de zone qui est chargée avec à l’étape avec les configurations de adminhtml d’autres modules. Pour plus d’informations, voir Modules et zones.

Chargement et fusion de la configuration

Cette section explique comment les fichiers de configuration sont chargés et fusionnés.

Chargement des fichiers de configuration par Commerce

Commerce charge les fichiers de configuration dans l’ordre suivant (tous les chemins d’accès sont relatifs à votre répertoire d’installation Commerce) :

  • Configuration du Principal (app/etc/di.xml). Ce fichier est utilisé pour amorcer Commerce.
  • Configurations globales des modules (<your component base dir>/<vendorname>/<component-type>-<component-name>/etc/*.xml). Collecte certains fichiers de configuration de tous les modules et les fusionne.
  • Configuration spécifique à une zone à partir des modules (<your component base dir>/<vendorname>/<component-type>-<component-name>/etc/<area>/*.xml). Collecte les fichiers de configuration de tous les modules et les fusionne dans la configuration globale. Certaines configurations spécifiques à une zone peuvent remplacer ou étendre la configuration globale.

  • <your component base dir> est le répertoire de base dans lequel se trouve votre composant. Les valeurs standard sont app/code ou vendor par rapport au répertoire d’installation de Commerce.

  • <vendorname> est le nom du fournisseur du composant ; par exemple, le nom du fournisseur du Commerce est magento.

  • <component-type> est l’un des éléments suivants :

    • module- : une extension ou un module.
    • theme- : thème.
    • language- : package de langue.
INFO
Actuellement, les thèmes sont situés sous <magento_root>/app/design/frontend ou <magento_root>/app/design/adminhtml.
  • <component-name> : nom de votre composant tel que défini dans composer.json.

Fusion du fichier de configuration

Les nœuds dans les fichiers de configuration sont fusionnés en fonction de leurs XPaths complets, qui possèdent un attribut spécial défini dans $idAttributes tableau déclaré comme identifiant. Cet identifiant doit être unique pour tous les nœuds imbriqués sous le même nœud parent.

Algorithme de fusion des applications Commerce :

  • Si les identifiants de nœud sont égaux (ou s’il n’existe aucun identifiant défini), tout le contenu sous-jacent dans le nœud (attributs, nœuds enfants et contenu scalaire) est remplacé.
  • Si les identifiants de nœud ne sont pas égaux, le nœud est un nouveau enfant du nœud parent.
  • Si le document d’origine comporte plusieurs nœuds avec le même identifiant, une erreur est déclenchée, car les identifiants ne peuvent pas être distingués.

Une fois les fichiers de configuration fusionnés, le document obtenu contient tous les nœuds des fichiers d’origine.

INFO
Vous pouvez utiliser la classe 🔗 pour déboguer et comprendre la logique derrière le processus chargeur de fichiers de configuration et fusion de configurations.

Types de configuration, objets et interfaces

Les sections suivantes fournissent des informations sur les types de configuration, les objets de configuration correspondants et les interfaces que vous pouvez utiliser pour travailler avec les objets :

Types de configuration et objets

Le tableau ci-dessous présente chaque type de configuration et l’objet de configuration Commerce auquel il se rapporte.

Fichier de configuration
Description
Étape
Objet Configuration
address_formats.xml
Déclaration du format de l’adresse
principal, global
🔗
acl.xml
​ Liste de contrôle d’accès ​
global
🔗
analytics.xml
Rapports avancés
principal, global
🔗
cache.xml
Déclaration de type de cache
principal, global
🔗
catalog_attributes.xml
Configuration des attributs de catalogue
global
🔗
config.php et env.php
Configuration du déploiement
Ces fichiers sont lisibles/inscriptibles par le processeur de configuration interne.
N’a aucun objet, ne peut pas être personnalisé
config.xml
Configuration du système
principal, global
🔗
communication.xml
Définit les aspects du système de file d’attente des messages
global
🔗
crontab.xml
Configure les groupes cron
global
🔗
cron_groups.xml
Spécifie les options du groupe cron
global
🔗
db_schema.xml
Schéma déclaratif
global
🔗
di.xml
Injection de dépendance configuration
principal, global, area
🔗
eav_attributes.xml
Fournit la configuration des attributs EAV
global
🔗
email_templates.xml
Configuration des modèles d’e-mail
global
🔗
esconfig.xml
Configuration des mots vides du paramètre régional du moteur de recherche
global
🔗
events.xml
Configuration d’événement/observateur
global, area
🔗
export.xml
Exporter la configuration des entités
global
🔗
extension_attributes.xml
​ Attributs d’extension ​
global
🔗
fieldset.xml
Définit des jeux de champs
global
🔗
indexer.xml
déclare les indexeurs
global
🔗
import.xml
Déclare les entités d’import
global
🔗
menu.xml
Définit les éléments de menu pour l’administrateur
adminhtml
🔗
module.xml
Définit les données de configuration du module et la dépendance conditionnelle
principal, global
🔗
mview.xml
Configuration de MView
principal, global
🔗
payment.xml
Configuration du module de paiement
principal, global
🔗
persistent.xml
Fichier de configuration Magento_Persistent
global
🔗
pdf.xml
Paramètres de PDF
global
🔗
product_options.xml
Fournit la configuration des options de produit
global
🔗
product_types.xml
Définit le type de produit
global
🔗
queue_consumer.xml
​ Définit la relation entre une file d’attente existante et son client
global
🔗
queue_publisher.xml
Définit l’échange où une rubrique est publiée.
global
🔗
queue_topology.xml
​ Définit les règles de routage des messages, déclare les files d’attente et les échanges
global
🔗
reports.xml
Rapports avancés
global
🔗
resources.xml
Définit la ressource du module
global
🔗
routes.xml
Configuration Route
zone
🔗
sales.xml
Définit la configuration du total des ventes
global
🔗
search_engine.xml
Fournit la configuration du moteur de recherche
global
🔗
search_request.xml
Définit la configuration de la recherche catalogue
global
🔗
sections.xml
Définit des actions qui déclenchent l’invalidation du cache pour les blocs de contenu privés
front-end
SectionInvalidationConfigReader
system.xml
Définit les options de la page de configuration du système
adminhtml
🔗
validation.xml
Fichier de configuration de validation du module
global
🔗
view.xml
Définit les valeurs de configuration de la vue Vendor_Module
global
🔗
webapi.xml
Configure une API web
global
🔗
webapi_async.xml
Définit les itinéraires personnalisés REST
global
🔗
widget.xml
Définit des widgets
global
🔗
zip_codes.xml
Définit le format du code postal de chaque pays
global
🔗

Interfaces de configuration

Vous pouvez interagir avec les fichiers de configuration à l’aide des interfaces sous Magento\Framework\Config.

Vous pouvez utiliser ces interfaces si vous créez un type de configuration.

Magento\Framework\Config fournit les interfaces suivantes :

En d’autres termes, le système de fichiers, la base de données et d’autres solutions de stockage fusionnent les fichiers de configuration en fonction des règles de fusion et valident les fichiers de configuration avec les schémas de validation.

recommendation-more-help
commerce-operations-help-configuration