Visão geral dos arquivos de configuração do módulo

As responsabilidades do arquivo de configuração config.xml usado em versões anteriores do Commerce agora são divididas entre vários arquivos, localizados em vários diretórios de módulo. Vários arquivos de configuração do Commerce são carregados sob demanda somente quando um módulo solicita um tipo de configuração específico.

Você pode usar esses arquivos, também conhecidos como tipos de configuração, para personalizar aspectos específicos do comportamento do módulo.

Vários módulos podem declarar arquivos de configuração que afetam o mesmo tipo de configuração (por exemplo, eventos), e esses vários arquivos de configuração são mesclados.

Os termos a seguir são comuns usados neste tópico:

  • Objeto de configuração — A biblioteca ou classe de Commerce responsável por definir e validar o tipo de configuração. Por exemplo, o objeto de configuração para config.xml é Magento\Framework\App\Config.

  • Estágio de configuração—Os estágios estão definidos como principal, global e área. Cada estágio determina quando o tipo de configuração é carregado e mesclado com tipos de configuração com o mesmo nome. Por exemplo, module.xml arquivos são mesclados com outros module.xml arquivos.

  • Escopo de configuração — Complementar aos estágios de configuração, um escopo define o modelo de tipo de configuração. Por exemplo, adminhtml é um escopo de área que é carregado com no estágio com as configurações adminhtml de outros módulos. Para obter mais informações, consulte Módulos e áreas.

Carregamento e mesclagem de configuração

Esta seção discute como os arquivos de configuração são carregados e mesclados.

Como o Commerce carrega arquivos de configuração

O Commerce carrega os arquivos de configuração na seguinte ordem (todos os caminhos são relativos ao diretório de instalação do Commerce):

  • Configuração primária (app/etc/di.xml). Esse arquivo é usado para inicializar o Commerce.
  • Configurações globais dos módulos (<your component base dir>/<vendorname>/<component-type>-<component-name>/etc/*.xml). Coleta determinados arquivos de configuração de todos os módulos e os mescla.
  • Configuração específica de área dos módulos (<your component base dir>/<vendorname>/<component-type>-<component-name>/etc/<area>/*.xml). Coleta arquivos de configuração de todos os módulos e os mescla à configuração global. Algumas configurações específicas de área podem substituir ou estender a configuração global.

onde

  • <your component base dir> é o diretório base no qual seu componente está localizado. Os valores típicos são app/code ou vendor relativos ao diretório de instalação do Commerce.

  • <vendorname> é o nome do fornecedor do componente; por exemplo, o nome do fornecedor da Commerce é magento.

  • <component-type> é um dos seguintes:

    • module-: Uma extensão ou um módulo.
    • theme-: Tema.
    • language-: Pacote de idioma.
INFO
Atualmente, os temas estão localizados em <magento_root>/app/design/frontend ou <magento_root>/app/design/adminhtml.
  • <component-name>: Nome do seu componente conforme definido em composer.json.

Mesclagem do arquivo de configuração

Os nós nos arquivos de configuração são mesclados com base em seus XPaths totalmente qualificados, que têm um atributo especial definido na matriz $idAttributes declarada como seu identificador. Esse identificador deve ser exclusivo para todos os nós aninhados no mesmo nó principal.

algoritmo de mesclagem de aplicativos do Commerce:

  • Se os identificadores de nó forem iguais (ou se não houver um identificador definido), todo o conteúdo subjacente no nó (atributos, nós secundários e conteúdo escalar) será substituído.
  • Se os identificadores de nó não forem iguais, o nó será um novo filho do nó pai.
  • Se o documento original tiver vários nós com o mesmo identificador, um erro será acionado porque os identificadores não podem ser diferenciados.

Depois que os arquivos de configuração forem mesclados, o documento resultante conterá todos os nós dos arquivos originais.

INFO
Você pode usar a classe \Magento\Framework\Config\Reader\Filesystem para depurar e entender a lógica por trás do processo carregador de arquivos de configuração e configurações de mesclagem.

Tipos, objetos e interfaces de configuração

As seções a seguir fornecem informações sobre tipos de configuração, seus objetos de configuração correspondentes e interfaces que você pode usar para trabalhar com os objetos:

Tipos e objetos de configuração

A tabela a seguir mostra cada tipo de configuração e o objeto de configuração do Commerce com o qual ele está relacionado.

Arquivo de configuração
Descrição
Estágio
Objeto de configuração
address_formats.xml
Declaração de formato de endereço
principal, global
\Magento\Customer\Model\Address\Config
acl.xml
Lista de Controle de Acesso
global
\Magento\Framework\Acl\AclResource\Provider
analytics.xml
[Relatórios avançados]https://developer.adobe.com/commerce/php/development/advanced-reporting/data-collection/)
principal, global
\Magento\Analytics\Model\Config\Reader
cache.xml
Declaração de tipo de cache
principal, global
\Magento\Framework\Cache\Config\Data
catalog_attributes.xml
Configuração de atributos do catálogo
global
\Magento\Catalog\Model\Attribute\Config\Data
config.php e env.php
Configuração de implantação
Esses arquivos podem ser lidos/gravados pelo processador de configuração interno.
Não tem objeto, não pode ser personalizado
config.xml
Configuração do sistema
principal, global
\Magento\Framework\App\Config
communication.xml
Define aspectos do sistema de fila de mensagens
global
\Magento\WebapiAsync\Code\Generator\Config\RemoteServiceReader\Communication
crontab.xml
Configura grupos cron
global
\Magento\Cron\Model\Config\Data
cron_groups.xml
Especifica as opções do grupo CRON
global
\Magento\Cron\Model\Groups\Config\Data
db_schema.xml
Esquema declarativo
global
Magento\Framework\Setup\Declaration\Schema
di.xml
Configuração de injeção de dependência
principal, global, área
\Magento\Framework\ObjectManager\Config
eav_attributes.xml
Fornece a configuração de atributos EAV
global
\Magento\Eav\Model\Entity\Attribute\Config
email_templates.xml
Configuração de modelos de email
global
\Magento\Email\Model\Template\Config\Data
esconfig.xml
Configuração de palavras irrelevantes de localidade do mecanismo de pesquisa
global
\Magento\Elasticsearch\Model\Adapter\Index\Config\EsConfig
events.xml
Configuração de evento/observador
global, área
\Magento\Framework\Event
export.xml
Exportar configuração da entidade
global
\Magento\ImportExport\Model\Export\Config
extension_attributes.xml
Atributos de extensão
global
\Magento\Framework\Api\ExtensionAttribute\Config
fieldset.xml
Define conjuntos de campos
global
\Magento\Framework\DataObject\Copy\Config\Reader
indexer.xml
Declara indexadores
global
\Magento\Framework\Indexer\Config\Reader
import.xml
Declara entidades de importação
global
\Magento\ImportExport\Model\Import\Config
menu.xml
Define itens de menu para o Administrador
adminhtml
\Magento\Backend\Model\Menu\Config\Reader
module.xml
Define os dados de configuração do módulo e a dependência suave
principal, global
\Magento\Framework\Module\ModuleList\Loader
mview.xml
Configuração do MView
principal, global
\Magento\Framework\Mview\Config\Data
payment.xml
Configuração do módulo de pagamento
principal, global
\Magento\Payment\Model\Config
persistent.xml
Arquivo de configuração Magento_Persistent
global
\Magento\Persistent\Helper\Data
pdf.xml
configurações de PDF
global
\Magento\Sales\Model\Order\Pdf\Config\Reader
product_options.xml
Fornece configuração de opções de produto
global
\Magento\Catalog\Model\ProductOptions\Config
product_types.xml
Define o tipo de produto
global
\Magento\Catalog\Model\ProductTypes\Config
queue_consumer.xml
Define a relação entre uma fila existente e seu consumidor
global
\Magento\Framework\MessageQueue\Consumer\Config\Xml\Reader
queue_publisher.xml
Define a troca em que um tópico é publicado.
global
\Magento\WebapiAsync\Code\Generator\Config\RemoteServiceReader\Publisher
queue_topology.xml
Define as regras de roteamento de mensagens, declara filas e trocas
global
\Magento\Framework\MessageQueue\Topology\Config\Xml\Reader
reports.xml
Relatórios avançados
global
\Magento\Analytics\ReportXml\Config
resources.xml
Define o recurso do módulo
global
\Magento\Framework\App\ResourceConnection\Config\Reader
routes.xml
Configuração de Rota
área
Magento\Framework\App\Route\Config
sales.xml
Define a configuração total de vendas
global
\Magento\Sales\Model\Config\Data
search_engine.xml
Fornece a configuração do mecanismo de pesquisa
global
Magento\Search\Model\SearchEngine\Config
search_request.xml
Define a configuração de pesquisa do catálogo
global
\Magento\Framework\Search\Request\Config
sections.xml
Define ações que acionam a invalidação de cache para blocos de conteúdo privado
front-end
SectionInvalidationConfigReader
system.xml
Define opções para a página de configuração do sistema
adminhtml
\Magento\Framework\App\Config
validation.xml
Arquivo de configuração de validação de módulo
global
\Magento\Framework\Validator\Factory
view.xml
Define valores de configuração de visualização de Vendor_Module
global
\Magento\Framework\View\Config
webapi.xml
Configura uma API da Web
global
\Magento\Webapi\Model\Config
webapi_async.xml
Define as rotas personalizadas REST
global
\Magento\WebapiAsync\Model\ServiceConfig
widget.xml
Define widgets
global
\Magento\Widget\Model\Config\Reader
zip_codes.xml
Define o formato de código postal de cada país
global
\Magento\Directory\Model\Country\Postcode\Config\Data

Interfaces de configuração

Você pode interagir com arquivos de configuração usando interfaces em Magento\Framework\Config.

Você pode usar essas interfaces se criar um tipo de configuração.

Magento\Framework\Config fornece as seguintes interfaces:

Ou seja, o sistema de arquivos, o banco de dados e outros armazenamentos mesclam os arquivos de configuração de acordo com as regras de mesclagem e validam os arquivos de configuração com os esquemas de validação.

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