【magento2配置专题3】配置文件

一、Magento 2 的部署配置

1.部署配置的目的

Magento 2的部署配置由你的模块的安装及环境配置:

  • /app/etc/config.php, 其中包含已安装的模块、主题和语言包的列表
  • /app/etc/env.php, 其中包含环境设置,如:

    • 数据库连接设置
    • 缓存存储设置
    • 启用的缓存类型
    • 您的加密密钥
    • 网络路由参数(基URL,Magento管理URI)
    • 文件系统路径

config.php 和 env.php 被称为Magento 2的 部署配置 因为他们安装期间创建和启动Magento 2所需的配置。

Magento 2部署配置取代 Magento 1.x的local.xml

不像其他的Module(模块)配置文件,Magento 2的部署配置加载到内存时,Magento 2的初始化,不与任何其他文件合并,并不能扩展。

2.部署配置的详细信息

config.php 和 env.php 返回一个多维数组

Magento\Framework\App\DeploymentConfig只提供对这些部分的访问,但不允许您扩展它们。

(1)管理已安装的模块

config.php 列出您已安装的组件(模块、主题和语言包)。Magento提供了命令行和基于Web的工具来管理组件(安装,卸载,启用,禁用,或升级)。

例如:

  • 卸载组件: bin/magento setup:uninstall
  • 启用或禁用组件:  bin/magento module:enable, bin/magento module:disable

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应用公认的;换句话说,他们不参与合并的配置,在依赖注入,事件,插件,等等。禁用模块不修改店面或管理员,不影响路由。

(2)环境配置

下表提供了有关 env.php 中代码片段的详细信息及其结构。.

片段 结构
Database db
__/db
|__/connection
| |__/[default]
|   |-- host
|   |-- dbname
|   |-- username
|   |-- password
|   |-- model [mysql4]
|   |-- initStatements [SET NAMES utf8;]
|   |-- active [1]
|-- table_prefix
Resources resource
__/resource
 |__/default_setup
   |-- connection [default]
Session 存储 session
__/session
 |__/save
   |-- 
Admin URL path backend
__/backend
 |-- frontName
Cache storage cache
__/cache
 |__/frontend
   |__/See front options
Installation date install
__/install
 |-- date
Encryption key encrypt
__/crypt
 |-- key
Cache types cache_types
__/cache_types
 |-- 
Message queues queue
__/queue
        |__/amqp
        |-- host
        |-- port
        |-- user
        |-- password
        |-- virtualhost
        |-- ssl
        

 

二、Module(模块)配置文件

1.Magento 2 Module(模块)配置文件概述

Magento 1.x版本的config.xml配置文件的任务现在分成几个文件,分布在各个模块的目录。Magento 2的多个配置文件的负载需求只有当模块请求一个特定的配置类型。

您可以使用这些文件,来自定义模块的特定功能。

多个模块可以声明同一文件

以下是本主题中常用的术语:

Configuration object(配置对象)

Magento 2的库或者类负责定义和验证配置类型. 例如, 配置对象 config.xml 是 Magento\Framework\App\Config的配置对象

Configuration stage(配置阶段 )

阶段被定义为 primaryglobal, 和 area. 每个阶段确定配置类型何时加载并与相同的命名配置类型合并

Configuration scope(配置范围)

与配置阶段互补,范围定义了配置类型模型. 例如, adminhtml 是与其他模块一起加载的后台区域范围 adminhtml 配置 .

2.配置加载和合并

本节讨论如何配置和加载配置文件。

(1).Magento 2 如何加载配置文件

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-: 语言包.

    目前,主题位于 /app/design/frontend 或 /app/design/adminhtml

  • : 定义的组件名称 composer.json.

(2).配置文件合并

在配置文件中的节点进行合并的基础上完全合格的XPath,它有一个特殊的属性$idAttributes宣称它的标识符定义数组。对于同一父节点下嵌套的所有节点,此标识符必须唯一。

Magento 2的合并方法如下:

  • 如果节点标识符相等(或没有定义标识符),则节点中的所有基本内容(属性、子节点和标量内容)将被重写。
  • 如果节点标识符不相等,则该节点是父节点的新子节点。
  • 如果原始文档具有多个具有相同标识符的节点,则会引发错误,因为无法区分标识符。

配置文件合并后,生成的文档包含原始文件中的所有节点。

5.配置类型、对象和接口

下面提供部分的有关配置类型及其相应的配置对象和可用于对象的接口的信息:

  • 配置类型和对象
  • 配置接口

(1)配置类型和对象

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

(2)配置接口

您可以使用配置接口下的配置文件Magento\Framework\Config. 如果创建新的配置类型,也可以使用这些接口。

Magento\Framework\Config 提供以下接口:

  • Framework\Config\ConverterInterface, 将xml转换为配置的内存数组表示形式。
  • Framework\Config\DataInterface, 它在指定范围内检索配置数据。
  • Framework\Config\FileResolverInterface, 它标识要读取的文件的位置 \Magento\Framework\Config\ReaderInterface
  • Framework\Config\ReaderInterface, 它从存储器中读取配置数据,并选择从其中读取的存储。

 

三、创建或扩展配置类型

1.扩展配置类型

若要扩展现有的配置类型,只需在模块中创建配置文件。

例如,添加一个事件的观察者,你创建的应用程序/ etc / events.xml,宣告了一个新的观察。

2.创建配置类型

若要创建新的配置类型,必须添加最新限制:

  • XML configuration files
  • XSD validation schema
  • A loader

你可能感兴趣的:(magento2)