**Magento的组件文件结构概述** Magento的2查找构成一个组成部分,包括配置文件,模块文件结构中特别是地方的文件。按照预定义的文件结构,以确保您的模块正常工作。 **根目录** 我们把组件的根目录中,您开发组件代码的顶级目录。通常,此目录位于相对于Magento的根目录下面的目录之一: * 应用程序app的子目录(推荐): * 模块:app/code * 主题:app/design/frontend (前端) app/design/adminhtml(后台) * 语言包:app/i18n 您可以轻松地通过克隆Magento的2 GitHub的信息库建立这种类型的环境。通常情况下,你如果你想贡献代码到Magento的代码库2克隆库。 * vendor:你得到这个目录结构,如果你使用composer创建项目命令获取Magento的2元数据包(其下载CE或EE代码),或者如果解压缩的Magento 2存档。 **所需的文件** 所需要的所有组件如下: ~~~ registration.php: 除其他事项外,用于指定在其中安装的部件的目录;默认情况下,组件安装在<Magento root dir>/vendor目录。有关详细信息,请参阅组件注册。 composer.json: 指定组件的依赖。欲了解更多信息,请参阅composer整合。 ~~~ **Magento2分支文件结构** 以下主题讨论以下组件的一个典型的文件结构: *Magento的2模块文件结构 * 对于Magento的2模块一个典型的文件结构: ![](https://box.kancloud.cn/2016-03-09_56dfd1207ac74.png) *典型的目录 :* 典型的模块目录是: Block:包含PHP视图类的垂直MVC实现模块逻辑的一部分。 Controller:包含PHP控制器类的垂直MVC实现模块逻辑的一部分。 etc:包括配置文件;特别是,module.xml,这是必需的。 Model:包含PHP模型类的MVC垂直实现模块逻辑的一部分。 Setup:包含这是安装或升级时调用的模块数据库结构和数据设置类。 *其他目录* 此外,还有一些用于配置和其他辅助功能对于像插件,国际化,布局文件的项目目录。 API:包含暴露在API的PHP类。 i18n:包含本地化文件。 Plugin:包含任何需要的插件。 view:鉴于包含的文件,包括静态视图文件,设计模板,电子邮件模板和布局文件。 *Magento的2主题文件结构* 一个典型的主题文件结构如下: ~~~ ├── composer.json ├── etc │ └── view.xml ├── i18n │ └── en_US.csv ├── LICENSE_AFL.txt ├── LICENSE.txt ├── media │ └── preview.jpg ├── registration.php └── web ├── css │ ├── email.less │ ├── print.less │ ├── source │ │ ├── _actions-toolbar.less │ │ ├── _breadcrumbs.less │ │ ├── _buttons.less │ │ ├── components │ │ │ └── _modals_extend.less │ │ ├── _icons.less │ │ ├── _layout.less │ │ ├── _theme.less │ │ ├── _tooltips.less │ │ ├── _typography.less │ │ └── _variables.less │ ├── _styles.less │ ├── styles-l.less │ └── styles-m.less ├── images │ └── logo.svg └── js ├── navigation-menu.js ├── responsive.js └── theme.js ~~~ *典型的目录* 典型的主题目录是: * etc:view.xml用包含所有图像和缩略图图像配置。 * i18n:翻译词典,如果有的话。 * media:主题预览(你的主题的屏幕截图)。 * web:可选目录包含分为以下几个子目录静态文件: * css/source:主题的即调用混入从Magento的UI库全局元素更少的配置文件和覆盖默认变量的值的theme.less文件。 * css/source/lib:重写存储lib/web/css/source/lib中的UI库文件查看文件 fonts:为您的主题字体。 * images:静态图像。 * JS:JavaScript文件。 Magento的2语言包文件结构 三个语言包一个典型的目录结构如下: ~~~ ├── de_de │ ├── composer.json │ ├── language.xml │ ├── LICENSE_AFL.txt │ ├── LICENSE.txt │ └── registration.php ├── en_us │ ├── composer.json │ ├── language.xml │ ├── LICENSE_AFL.txt │ ├── LICENSE.txt │ └── registration.php ├── pt_br │ ├── composer.json │ ├── language.xml │ ├── LICENSE_AFL.txt │ ├── LICENSE.txt │ └── registration.php ~~~ 一个语言包唯一需要的目录是顶级目录。虽然不是必需的,我们建议的目录名称相匹配的ISO代码来识别的语言环境。 (目录名称必须为小写。) 有关语言包的更多信息,请参阅翻译词典和语言包。