Magento 2的部署配置由你的模块的安装及环境配置:
/app/etc/config.php
, 其中包含已安装的模块、主题和语言包的列表
, 其中包含环境设置,如:
config.php
和 env.php
被称为Magento 2的 部署配置 因为他们安装期间创建和启动Magento 2所需的配置。
Magento 2部署配置取代 Magento 1.x的local.xml
不像其他的Module(模块)配置文件,Magento 2的部署配置加载到内存时,Magento 2的初始化,不与任何其他文件合并,并不能扩展。
config.php
和 env.php
返回一个多维数组
Magento\Framework\App\DeploymentConfig只提供对这些部分的访问,但不允许您扩展它们。
config.php
列出您已安装的组件(模块、主题和语言包)。Magento提供了命令行和基于Web的工具来管理组件(安装,卸载,启用,禁用,或升级)。
例如:
config.php
代码片段 :
return array (
'modules' =>
array (
'Magento_Core' => 1,
'Magento_Store' => 1,
'Magento_Theme' => 1,
'Magento_Authorization' => 1,
'Magento_Directory' => 1,
'Magento_Backend' => 1,
'Magento_Backup' => 1,
'Magento_Eav' => 1,
'Magento_Customer' => 1,
...
),
);
值 1
或 0
指示是否启用或禁用模块.
禁用模块不是由Magento应用公认的;换句话说,他们不参与合并的配置,在依赖注入,事件,插件,等等。禁用模块不修改店面或管理员,不影响路由。
下表提供了有关 env.php
中代码片段的详细信息及其结构。.
片段 | 键 | 结构 |
---|---|---|
Database | db |
|
Resources | resource |
|
Session 存储 | session |
|
Admin URL path | backend |
|
Cache storage | cache |
|
Installation date | install |
|
Encryption key | encrypt |
|
Cache types | cache_types |
|
Message queues | queue |
|
Magento 1.x版本的config.xml配置文件的任务现在分成几个文件,分布在各个模块的目录。Magento 2的多个配置文件的负载需求只有当模块请求一个特定的配置类型。
您可以使用这些文件,来自定义模块的特定功能。
多个模块可以声明同一文件
以下是本主题中常用的术语:
Configuration object(配置对象)
Magento 2的库或者类负责定义和验证配置类型. 例如, 配置对象 config.xml
是 Magento\Framework\App\Config的配置对象
Configuration stage(配置阶段 )
阶段被定义为 primary, global, 和 area. 每个阶段确定配置类型何时加载并与相同的命名配置类型合并
Configuration scope(配置范围)
与配置阶段互补,范围定义了配置类型模型. 例如, adminhtml
是与其他模块一起加载的后台区域范围 adminhtml
配置 .
本节讨论如何配置和加载配置文件。
Magento 2按照以下顺序加载配置文件(所有的路径都是相对于你的Magento 2安装目录):
app/etc/di.xml
). 此文件是用来引导Magento 2.<您的组件基础目录>//-/etc/*.xml
). 从所有模块收集某些配置文件并将它们合并在一起。.<组件基础目录>//-/etc//*.xml
). 从所有模块收集配置文件并将它们合并到全局配置中。某些特定区域的配置可以覆盖或扩展全局配置。<组件基础目录>
是您的组件位于的基本目录. 典型值是app/code
或 vendor
相对于Magento 2安装目录。
是组件的vendor名称;例如,Magento 2的vendor名称magento
.
是下列之一:
module-
: 扩展或模块.theme-
: 主题.language-
: 语言包.目前,主题位于
或
: 定义的组件名称 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
提供以下接口:
\Magento\Framework\Config\ReaderInterface
Framework\Config\ReaderInterface, 它从存储器中读取配置数据,并选择从其中读取的存储。
若要扩展现有的配置类型,只需在模块中创建配置文件。
例如,添加一个事件的观察者,你创建的应用程序/ etc / events.xml,宣告了一个新的观察。
若要创建新的配置类型,必须添加最新限制: