Module(模块)配置文件
Magento 2 Module(模块)配置文件概述
Magento 1.x版本的config.xml配置文件的任务现在分成几个文件,分布在各个模块的目录。Magento 2的多个配置文件的负载需求只有当模块请求一个特定的配置类型。
您可以使用这些文件,来自定义模块的特定功能。
多个模块可以声明同一文件
以下是本主题中常用的术语:
- Configuration object(配置对象)
- Magento 2的库或者类负责定义和验证配置类型. 例如, 配置对象
config.xml
是 Magento\Framework\App\Config的配置对象 - Configuration stage(配置阶段 )
- 阶段被定义为 primary, global, 和 area. 每个阶段确定配置类型何时加载并与相同的命名配置类型合并,更多信息,参见n, see 配置加载与合并.
- Configuration scope(配置范围)
- 与配置阶段互补,范围定义了配置类型模型. 例如,
adminHTML
是与其他模块一起加载的后台区域范围adminhtml
配置 . 更多信息, 查看 Modules(模块) 和 areas(区域).
配置加载和合并
本节讨论如何配置和加载配置文件。
Magento 2 如何加载配置文件
Magento 2按照以下顺序加载配置文件(所有的路径都是相对于你的Magento 2安装目录):
- 主要配置 (
app/etc/di.xml
). 此文件是用来引导Magento 2. - 从全局配置模块 (
<您的组件基础目录>/<vendorname>/<component-type>-<component-name>/etc/*.xml
). 从所有模块收集某些配置文件并将它们合并在一起。. - 模块的特定区域配置(
<组件基础目录>/<vendorname>/<component-type>-<component-name>/etc/<area>/*.xml
). 从所有模块收集配置文件并将它们合并到全局配置中。某些特定区域的配置可以覆盖或扩展全局配置。
-
<组件基础目录>
是您的组件位于的基本目录. 典型值是app/code
或vendor
相对于Magento 2安装目录。 -
<vendorname>
是组件的vendor名称;例如,Magento 2的vendor名称magento
. -
<component-type>
是下列之一:-
module-
: 扩展或模块. -
theme-
: 主题. -
language-
: 语言包.
目前,主题位于
<Magento 2 安装目录>/app/design/frontend
或<Magento 2 安装目录>/app/design/adminhtml
-
-
<component-name>
: 定义的组件名称composer.json
.
配置文件合并
在配置文件中的节点进行合并的基础上完全合格的XPath,它有一个特殊的属性$idAttributes
宣称它的标识符定义数组。对于同一父节点下嵌套的所有节点,此标识符必须唯一。
Magento 2的合并方法如下:
- 如果节点标识符相等(或没有定义标识符),则节点中的所有基本内容(属性、子节点和标量内容)将被重写。
- 如果节点标识符不相等,则该节点是父节点的新子节点。
- 如果原始文档具有多个具有相同标识符的节点,则会引发错误,因为无法区分标识符。
配置文件合并后,生成的文档包含原始文件中的所有节点。
配置类型、对象和接口
下面提供部分的有关配置类型及其相应的配置对象和可用于对象的接口的信息:
- 配置类型和对象
- 配置接口
配置类型和对象
Configuration file | Description | Stage | Configuration object |
---|---|---|---|
config.php 和 env.php
|
部署配置 | Loads into memory when Magento initializes | Has no object, cannot be customized |
config.xml |
System configuration | primary, global | \Magento\Framework\App\Config |
di.xml |
依赖注入 configuration | primary, global, area | \Magento\Framework\ObjectManager\Config |
events.xml |
Event/observer configuration | global, area | \Magento\Framework\Event |
routes.xml |
Route configuration | area | Magento\Framework\App\Route\Config |
配置接口
您可以使用配置接口下的配置文件Magento\Framework\Config. 如果创建新的配置类型,也可以使用这些接口。
Magento\Framework\Config
提供以下接口:
- Framework\Config\ConverterInterface, 将xml转换为配置的内存数组表示形式。
- Framework\Config\DataInterface, 它在指定范围内检索配置数据。
- Framework\Config\FileResolverInterface, 它标识要读取的文件的位置
\Magento\Framework\Config\ReaderInterface
-
Framework\Config\ReaderInterface, 它从存储器中读取配置数据,并选择从其中读取的存储。
相关话题
- 创建或扩展配置类型
- Magento 2的部署配置