1.框架目录结构
- 模块放在
app/code
. - 前端主题放在
app/design/frontend
. - 后台主题放在
app/design/adminhtml
. - 语言包放在
app/i18n
.
注意事项:
在Magento 2中,没有代码池。因此,没有更多的混淆 app/code/local,app/code/core 以及 app/code/community。您的模块将只在目录中 app/code/YourNamespace/YourModule。
2.模块文件结构
一个Magento 2模块典型的文件结构如下图:
- Api :包含暴露给API的任何PHP类。
- Block : 包含PHP视图类作为模型视图控制器(MVC)模块逻辑的垂直实现的一部分。
- Controller: 包含PHP控制器类作为MVC垂直模块逻辑实现的一部分。
- etc: 包含配置文件。
- i18n :包含本地化文件。
- Model: 包含PHP模型类作为MVC垂直实现模块逻辑的一部分。
- Plugin :包含任何所需的插件。
- view :包含视图文件,包括静态视图文件,设计模板,电子邮件模板和布局文件。
- registration.php:此文件指定在生产环境中安装组件的目录。 默认情况下,组件安装在 <magento 2 根目录>/vendor 目录。Magento 2组件 , 包括模块, 主题, 和语言包, 必须注册在Magento 2ComponentRegistrar类。每个组件必须有一个文件名为 registration.php 文件在根目录。
- composer.json: 指定组件依赖关系和其他元数据。Magento 2 使用Composer, 一个PHP依赖管理器,封装组件和产品版本。Composer 读取 composer.json 文件,下载第三方依赖列表在这个文件中。组件管理器使用 composer.json 文件在扩展根目录下执行更新,卸载,启用或禁用扩展。
- di.xml: 每个模块可以有一个全局和区域特定
di.xml
文件,Magento 2读取系统中定义的所有di.xml配置文件并且通过添加所有节点将它们合并在一起。 - 作为一般规则,特定区域的di.xml文件应该配置为表示层依赖,和你的模块的全局di.xml文件应该配置附属的依赖。Magento 2加载配置在以下几个阶段 :
-
- Initial(初始) (
app/etc/di.xml
) - Global(全局) (
<模块目录>/etc/di.xml
) - Area-specific(特定区域) (
<模块目录>/etc/<area>/di.xml
)
- Initial(初始) (
3.主题文件结构
一个典型的主题文件结构如下图:
4.语言包文件结构
一个典型的语言包文件结构如下图: