Présentation des fichiers de configuration de 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. Le Commerce plusieurs fichiers de configuration charge à 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 (des événements, par exemple), et ces fichiers de configuration multiples sont fusionnés.

Vous trouverez ci-dessous 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 primaire, global et area. Chaque étape détermine le moment où le type de configuration est chargé et fusionné avec les types de configuration du même nom. Par exemple, les fichiers module.xml sont fusionnés avec d’autres fichiers module.xml.

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

Chargement et fusion des configurations

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

Comment Commerce charge les fichiers de configuration

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

  • Configuration de Principal (app/etc/di.xml). Ce fichier est utilisé pour démarrer 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 à la zone à partir des modules (<your component base dir>/<vendorname>/<component-type>-<component-name>/etc/<area>/*.xml). Collecte des 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.

where

  • <your component base dir> est le répertoire de base dans lequel se trouve votre composant. Les valeurs types 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 Commerce est magento.

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

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

Fusion du fichier de configuration

Les noeuds des fichiers de configuration sont fusionnés en fonction de leurs XPath entièrement qualifiés, qui a un attribut spécial défini dans le tableau $idAttributes déclaré comme identifiant. Cet identifiant doit être unique pour tous les noeuds imbriqués dans le même noeud parent.

Algorithme de fusion d’applications Commerce :

  • Si les identifiants de noeud sont égaux (ou si aucun identifiant n’est défini), tout le contenu sous-jacent dans le noeud (attributs, noeuds enfants et contenu scalaire) est remplacé.
  • Si les identifiants de noeud ne sont pas égaux, le noeud est un nouvel enfant du noeud parent.
  • Si le document d’origine comporte plusieurs noeuds portant 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 noeuds des fichiers d’origine.

INFO
Vous pouvez utiliser la classe \Magento\Framework\Config\Reader\Filesystem pour déboguer et comprendre la logique derrière le processus chargeur de fichiers de configuration et configurations de fusion.

Types, objets et interfaces de configuration

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 et objets de configuration

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

Fichier de configuration
Description
Évaluation
Objet de configuration
address_formats.xml
Déclaration du format d’adresse
principal, global
\Magento\Customer\Model\Address\Config
acl.xml
Liste de contrôle d’accès
global
\Magento\Framework\Acl\AclResource\Provider
analytics.xml
Création de rapports avancés
principal, global
\Magento\Analytics\Model\Config\Reader
cache.xml
Déclaration du type de cache
principal, global
\Magento\Framework\Cache\Config\Data
catalog_attributes.xml
Configuration des attributs du catalogue
global
\Magento\Catalog\Model\Attribute\Config\Data
config.php et env.php
Configuration de déploiement
Ces fichiers sont lisibles/modifiables par le processeur de configuration interne.
Sans objet, ne peut pas être personnalisé
config.xml
Configuration du système
principal, global
\Magento\Framework\App\Config
communication.xml
Définit les aspects du système de file de messages
global
\Magento\WebapiAsync\Code\Generator\Config\RemoteServiceReader\Communication
crontab.xml
Configure les groupes cron
global
\Magento\Cron\Model\Config\Data
cron_groups.xml
Spécifie les options du groupe cron
global
\Magento\Cron\Model\Groups\Config\Data
db_schema.xml
Schéma déclaratif
global
Magento\Framework\Setup\Declaration\Schema
di.xml
Configuration de injection de dépendance
principal, global, zone
\Magento\Framework\ObjectManager\Config
eav_attributes.xml
Fournit la configuration des attributs d’expérience visuelle
global
\Magento\Eav\Model\Entity\Attribute\Config
email_templates.xml
Configuration des modèles d'email
global
\Magento\Email\Model\Template\Config\Data
esconfig.xml
Mot de passe du moteur de recherche avec les paramètres régionaux du moteur de recherche config
global
\Magento\Elasticsearch\Model\Adapter\Index\Config\EsConfig
events.xml
Configuration des événements/observateurs
global, zone
\Magento\Framework\Event
export.xml
Exporter la configuration des entités
global
\Magento\ImportExport\Model\Export\Config
extension_attributes.xml
Attributs d’extension
global
\Magento\Framework\Api\ExtensionAttribute\Config
fieldset.xml
Définit les jeux de champs
global
\Magento\Framework\DataObject\Copy\Config\Reader
indexer.xml
Déclarer les indexeurs
global
\Magento\Framework\Indexer\Config\Reader
import.xml
Déclarer les entités d’importation
global
\Magento\ImportExport\Model\Import\Config
menu.xml
Définit les options de menu pour l’administrateur.
adminhtml
\Magento\Backend\Model\Menu\Config\Reader
module.xml
Définit les données de configuration de module et la dépendance de type Soft.
principal, global
\Magento\Framework\Module\ModuleList\Loader
mview.xml
Configuration MView
principal, global
\Magento\Framework\Mview\Config\Data
payment.xml
Configuration du module de paiement
principal, global
\Magento\Payment\Model\Config
persistent.xml
Fichier de configuration Magento_Persistent
global
\Magento\Persistent\Helper\Data
pdf.xml
Paramètres du PDF
global
\Magento\Sales\Model\Order\Pdf\Config\Reader
product_options.xml
Configuration des options de produit
global
\Magento\Catalog\Model\ProductOptions\Config
product_types.xml
Définit le type de produit
global
\Magento\Catalog\Model\ProductTypes\Config
queue_consumer.xml
Définit la relation entre une file d'attente existante et son consommateur
global
\Magento\Framework\MessageQueue\Consumer\Config\Xml\Reader
queue_publisher.xml
Définit l’exchange de publication d’une rubrique.
global
\Magento\WebapiAsync\Code\Generator\Config\RemoteServiceReader\Publisher
queue_topology.xml
Définit les règles de routage des messages, déclare les files d’attente et les exchanges
global
\Magento\Framework\MessageQueue\Topology\Config\Xml\Reader
reports.xml
Rapports avancés
global
\Magento\Analytics\ReportXml\Config
resources.xml
Définit la ressource de module
global
\Magento\Framework\App\ResourceConnection\Config\Reader
routes.xml
Configuration Route
area
Magento\Framework\App\Route\Config
sales.xml
Définit la configuration totale des ventes
global
\Magento\Sales\Model\Config\Data
search_engine.xml
Fournit la configuration du moteur de recherche
global
Magento\Search\Model\SearchEngine\Config
search_request.xml
Définit la configuration de la recherche catalogue
global
\Magento\Framework\Search\Request\Config
sections.xml
Définit les actions qui déclenchent l’invalidation du cache pour les blocs de contenu privés.
frontend
SectionInvalidationConfigReader
system.xml
Définit les options de la page de configuration du système.
adminhtml
\Magento\Framework\App\Config
validation.xml
Fichier de configuration de validation de module
global
\Magento\Framework\Validator\Factory
view.xml
Définit les valeurs de configuration de la vue Vendor_Module
global
\Magento\Framework\View\Config
webapi.xml
Configure une API web
global
\Magento\Webapi\Model\Config
webapi_async.xml
Définit les itinéraires personnalisés REST
global
\Magento\WebapiAsync\Model\ServiceConfig
widget.xml
Définit des widgets
global
\Magento\Widget\Model\Config\Reader
zip_codes.xml
Définit le format du code postal de chaque pays.
global
\Magento\Directory\Model\Country\Postcode\Config\Data

Interfaces de configuration

Vous pouvez interagir avec les fichiers de configuration à l’aide d’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 les autres espaces de stockage fusionnent les fichiers de configuration selon les règles de fusion et valident les fichiers de configuration avec les schémas de validation.

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