Información general sobre los archivos de configuración del módulo
Las responsabilidades del archivo de configuración config.xml
utilizado en versiones anteriores de Commerce ahora se dividen entre varios archivos, ubicados en varios directorios de módulos. Los archivos de configuración múltiples de Commerce solo se cargan bajo demanda cuando un módulo solicita un tipo de configuración específico.
Puede utilizar estos archivos (también conocidos como tipos de configuración) para personalizar aspectos específicos del comportamiento del módulo.
Varios módulos pueden declarar archivos de configuración que afectan al mismo tipo de configuración (por ejemplo, eventos), y estos archivos de configuración múltiples se combinan.
A continuación se indican términos comunes utilizados en este tema:
-
Objeto de configuración: la clase o biblioteca de Commerce responsable de definir y validar el tipo de configuración. Por ejemplo, el objeto de configuración de
config.xml
es Magento\Framework\App\Config. -
Fase de configuración: las fases se definen como principal, global y área. Cada fase determina cuándo se carga el tipo de configuración y se combina con tipos de configuración con el mismo nombre. Por ejemplo,
module.xml
archivos se combinan con otrosmodule.xml
archivos. -
Ámbito de configuración: como complemento de las fases de configuración, un ámbito define el modelo de tipo de configuración. Por ejemplo,
adminhtml
es un ámbito de área que se carga con en la fase con las configuracionesadminhtml
de otros módulos. Para obtener más información, vea Módulos y áreas.
Carga y combinación de configuración
En esta sección se explica cómo se cargan y combinan los archivos de configuración.
Cómo carga Commerce los archivos de configuración
Commerce carga los archivos de configuración en el siguiente orden (todas las rutas son relativas al directorio de instalación de Commerce):
- Configuración principal (app/etc/di.xml). Este archivo se utiliza para arrancar Commerce.
- Configuraciones globales de módulos (
<your component base dir>/<vendorname>/<component-type>-<component-name>/etc/*.xml
). Recopila ciertos archivos de configuración de todos los módulos y los combina. - Configuración específica de área de los módulos (
<your component base dir>/<vendorname>/<component-type>-<component-name>/etc/<area>/*.xml
). Recopila archivos de configuración de todos los módulos y los combina en la configuración global. Algunas configuraciones específicas del área pueden anular o ampliar la configuración global.
donde
-
<your component base dir>
es el directorio base en el que se encuentra el componente. Los valores habituales sonapp/code
ovendor
en relación con el directorio de instalación de Commerce. -
<vendorname>
es el nombre de proveedor del componente; por ejemplo, el nombre de proveedor de Commerce esmagento
. -
<component-type>
es uno de los siguientes:module-
: extensión o módulo.theme-
: tema.language-
: paquete de idioma.
<magento_root>/app/design/frontend
o <magento_root>/app/design/adminhtml
.<component-name>
: nombre del componente tal como se define en composer.json.
Combinación de archivos de configuración
Los nodos de los archivos de configuración se combinan según sus XPath completos, que tienen un atributo especial definido en la matriz $idAttributes
declarada como identificador. Este identificador debe ser único para todos los nodos anidados en el mismo nodo principal.
Algoritmo de combinación de aplicaciones Commerce:
- Si los identificadores de nodo son iguales (o si no hay ningún identificador definido), se anula todo el contenido subyacente del nodo (atributos, nodos secundarios y contenido escalar).
- Si los identificadores de nodo no son iguales, el nodo es un nuevo elemento secundario del nodo principal.
- Si el documento original tiene varios nodos con el mismo identificador, se activa un error porque los identificadores no se pueden distinguir.
Una vez combinados los archivos de configuración, el documento resultante contiene todos los nodos de los archivos originales.
Tipos de configuración, objetos e interfaces
Las secciones siguientes proporcionan información sobre tipos de configuración, sus objetos de configuración correspondientes e interfaces que puede utilizar para trabajar con los objetos:
Tipos de configuración y objetos
En la tabla siguiente se muestra cada tipo de configuración y el objeto de configuración de Commerce con el que se relaciona.
address_formats.xml
analytics.xml
catalog_attributes.xml
config.php
y env.php
communication.xml
cron_groups.xml
eav_attributes.xml
email_templates.xml
esconfig.xml
extension_attributes.xml
menu.xml
module.xml
product_options.xml
queue_consumer.xml
queue_publisher.xml
queue_topology.xml
resources.xml
search_engine.xml
search_request.xml
sections.xml
system.xml
validation.xml
view.xml
zip_codes.xml
Interfaces de configuración
Puede interactuar con archivos de configuración mediante interfaces en Magento\Framework\Config.
Puede usar estas interfaces si crea un tipo de configuración.
Magento\Framework\Config
proporciona las siguientes interfaces:
- Framework\Config\ConverterInterface, que convierte el XML en una representación de matriz en memoria de las configuraciones.
- Framework\Config\DataInterface, que recupera los datos de configuración en un ámbito especificado.
- Framework\Config\FileResolverInterface, que identifica la ubicación de los archivos que Magento\Framework\Config\ReaderInterface va a leer.
- Framework\Config\ReaderInterface, que lee los datos de configuración del almacenamiento y selecciona el almacenamiento desde el que se lee.
Es decir, el sistema de archivos, la base de datos y otro almacenamiento combinan los archivos de configuración según las reglas de combinación y validan los archivos de configuración con los esquemas de validación.
- Framework\Config\SchemaLocatorInterface, que localiza el esquema XSD.
- Framework\Config\ScopeListInterface, que devuelve una lista de ámbitos.
- Framework\Config\ValidationStateInterface, que recupera el estado de validación.