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 nœuds imbriqués sous le même nœud parent.

Algorithme de fusion d’applications commerciales :

  • Si les identificateurs de nœud sont égaux (ou si aucun identificateur n’est défini), tout le contenu sous-jacent du 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 nouvel enfant du nœud parent.
  • Si le document d’origine comporte plusieurs nœuds avec le même identificateur, une erreur est déclenchée car les identificateurs ne peuvent pas être distingués.

Une fois les fichiers de configuration fusionnés, le document résultant 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 de configuration du chargeur et des configurations de fusion.

Types de configuration, objets et interfaces

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

Types et objets de configuration

Le tableau suivant montre 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]https://developer.adobe.com/commerce/php/development/advanced-reporting/data-collection/)
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
Configuration des 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 d’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 événement/observateur
globale, zone
\Magento\Framework\Event
export.xml
Exporter la configuration de l’entité
global
\Magento\ImportExport\Model\Export\Config
extension_attributes.xml
Attributs d’extension
global
\Magento\Framework\Api\ExtensionAttribute\Config
fieldset.xml
Définit les ensembles 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 PDF
global
\Magento\Sales\Model\Order\Pdf\Config\Reader
product_options.xml
Fournit la configuration des options du produit
global
\Magento\Catalogue\Modèle\ProductOptions\Config
product_types.xml
Définit le type de produit
global
\Magento\Catalogue\Modèle\TypesdeProduit\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’échange dans lequel 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 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 du total des ventes
global
\Magento\Ventes\Modèle\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 pour chaque pays
global
\Magento\Répertoire\Modèle\Pays\Code Postal\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 :

C’est-à-dire que le système de fichiers, la base de données, l’autre stockage fusionne les fichiers de configuration conformément aux règles de fusion et valide les fichiers de configuration avec les schémas de validation.

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