[PaaS uniquement]{class="badge informative" title="S’applique uniquement aux projets Adobe Commerce on Cloud (infrastructure PaaS gérée par Adobe) et aux projets On-premise."}

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 \Magento\Framework\Config\Reader\Filesystem 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
\Magento\Customer\Model\Address\Config
acl.xml
Liste de contrôle d’accès
global
\Magento\Framework\Acl\AclResource\Provider
analytics.xml
Rapports avancés
principal, global
\Magento\Analytics\Model\Config\Reader
cache.xml
Déclaration de type de cache
principal, global
\Magento\Framework\Cache\Config\Data
catalog_attributes.xml
Configuration des attributs de catalogue
global
\Magento\Catalog\Model\Attribute\Config\Data
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
\Magento\Framework\App\Config
communication.xml
Définit les aspects du système de file d’attente des 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
Injection de dépendance configuration
principal, global, area
\Magento\Framework\ObjectManager\Config
eav_attributes.xml
Fournit la configuration des attributs EAV
global
\Magento\Eav\Model\Entity\Attribute\Config
email_templates.xml
Configuration des modèles d’e-mail
global
\Magento\Email\Model\Template\Config\Data
esconfig.xml
Configuration des mots vides du paramètre régional du moteur de recherche
global
\Magento\Elasticsearch\Model\Adapter\Index\Config\EsConfig
events.xml
Configuration d’événement/observateur
global, area
\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 des jeux de champs
global
\Magento\Framework\DataObject\Copy\Config\Reader
indexer.xml
déclare les indexeurs
global
\Magento\Framework\Indexer\Config\Reader
import.xml
Déclare les entités d'import
global
\Magento\ImportExport\Model\Import\Config
menu.xml
Définit les éléments de menu pour l’administrateur
adminhtml
\Magento\Backend\Model\Menu\Config\Reader
module.xml
Définit les données de configuration du module et la dépendance conditionnelle
principal, global
\Magento\Framework\Module\ModuleList\Loader
mview.xml
Configuration de 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 de PDF
global
\Magento\Sales\Model\Order\Pdf\Config\Reader
product_options.xml
Fournit la 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 client
global
\Magento\Framework\MessageQueue\Consumer\Config\Xml\Reader
queue_publisher.xml
Définit l’échange où une rubrique est publiée.
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 échanges
global
\Magento\Framework\MessageQueue\Topology\Config\Xml\Reader
reports.xml
Rapports avancés
global
\Magento\Analytics\ReportXml\Config
resources.xml
Définit la ressource du module
global
\Magento\Framework\App\ResourceConnection\Config\Reader
routes.xml
Configuration Route
zone
Magento\Framework\App\Route\Config
sales.xml
Définit la configuration du total 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 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
\Magento\Framework\App\Config
validation.xml
Fichier de configuration de validation du 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 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
386822bd-e32c-40a8-81c2-ed90ad1e198c