Magento 2文件结构

Magento 2可以被认为是Magento的最新版本,Magento是一个领先的企业级电子商务平台。继承了Magento之前版本的众多成功因素,Magento 2还展示了现代技术和结构,并修改了目录结构,但将其提升到了一个全新的水平,更加简化了定制。目前,有超过20万名在线零售商使用Magento 2平台。

Magento 2文件样本模块的结构包含块,控制器,帮助器,模型等。这些都与特定的业务功能相关。管理员ACL,管理员菜单和配置都包含在etc文件夹中。如果您想知道创建简单hello world模块的方法,可以访问我们的Simple Hello World模块。

1. Magento 2文件结构

你可以看到Magento 2文件结构包含app,bin,setup,phpserver,var,generated,lib,pub,dev。请参见下图。

文件结构

为了帮助您理解结构,我将浏览每个文件夹包含的内容和文件内容。

应用( app )

此文件夹中有三个主要子目录designi18netc。您拥有的所有模块都应包含在app/code/<CompanyName>/<ModuleName>目录中。此外,此处还推荐您的所有第三方模块。

您应该将自定义商店主题存储在app/design/frontend子目录下,并且所有管理主题都应存储在app/design/adminhtml子目录中。

app/i18ndirectory是语言包存储的文件夹。如果您想创建一个可以更好地满足您的客户需求的多语言商店,您可以使用此文件夹。

干净安装后,code子目录将丢失。此外,为避免自定义模块与Magento的核心模块混合,您需要在vendor目录中添加所有Magento核心模块。这是因为,与Magento 1版本不同,Magento 1版本的所有Magento核心模块都必须提交给他们的Git存储库,而Magento 2这两个版本是分开的。

通过包含Magento核心模块的Composer,您可以存储所有已安装的软件包。您可以扩展模块,而不是直接从此文件夹中工作,这可以在升级供应商文件后覆盖所有更改app/code/<CompanyName> or app/design

phpserver

这个Router.php文件可以用来实现PHP内置服务器。但是,不建议您使用此文件,因为它可能会对您的站点造成许多潜在的大安全漏洞。

bin

Magento CLI可执行脚本存储在此目录中。使用此脚本,将激活Magento命令,这有助于清除缓存或重建索引。

setup

这包含与Magento安装设置相关的所有文件

generated

这是Magento生成的代码存储的地方。在默认设置中,如果在构造函数中注入类,则Magento将生成代码以创建不存在的工厂类。

VAR

这包括生成的类,会话,缓存,数据库备份和缓存的错误报告。在此文件夹中,您可以生成许多子目录的内容,包括var/di何时php bin/magento setup:di:compile运行。

var/log 存储Magento日志文件主要是exception.log和system.log文件。

var/cache包含Magento的所有缓存。建议您使用php bin/magento cache:clean命令清除缓存,以查看开发更改。

dev

存储由Magento测试框架运行的自动功能测试。

LIB

它包含所有Magento和供应商库文件。它还包括所有基于非模块的Magento代码。

pub

一个index.php文件将被存储在这个目录下。您可以使用此文件在生产模式下运行应用程序。此目录为您提供了一个安全措施,可以限制对根目录资产的公共访问。此外,此文件夹还包括您的Magento主题生成的静态文件

vendor

这是一个包含框架核心的目录。这里也是您可以安装其他模块的地方。使用composer.json文件创建供应商文件夹的所有操作。如果查看此文件夹,您将看到没有文件或文件夹。这只是因为composer.json将创建这些文件和文件夹。您将能够看到在composer.json文件下定义的众多包。

2.组件文件结构

在提供了关于定义和结构的几个基本知识之后,在这一部分中,我将介绍组件类型的不同文件结构。Magento的应用程序将查找创建组件的文件,包括组件文件结构内特定位置的配置文件。为了确保组件类型正常工作,您需要遵循预定义的文件结构。

根目录( Root directory )

组件的根目录与其名称匹配,并且还包括其所有子目录和文件。根据您安装Magento的方式,您的组件的根目录可以放在以下两个位置之一:

  • <Magento install directory>/app:这是组件开发的可取位置。通过使用克隆Magento 2 GitHub存储库,您可以设置此环境。
    • 申请app/code模块
    • 申请app/design/frontend店面主题
    • 申请app/design/adminhtml管理主题
    • 申请app/i18n语言包
  • <Magento install directory>/vendor:此位置可以在composer create-project用于安装Magento 2元数据包的安装中找到,该元数据包是下载CE或EE代码的。如果您提取压缩的Magento 2存档以安装Magento,也可以找到此位置。

所需文件( Required files )

所有组件都需要以下文件:

  • registration.php:这是将使用Magento注册您的组件的文件。在此文件中,组件的根目录名称用作组件名称。因此,默认情况下,组件安装在<Magento root dir>/vendor directory
  • etc/module.xml:这是定义组件基本信息的文件,例如,组件依赖性和版本号。版本号将用于确定执行时要更新的架构和数据bin/magento setup:upgrade
  • composer.json:这是定义组件在运行时所需的依赖项的文件。

3.模块文件结构

在下图中,您将看到典型的文件结构如何:

模块文件结构

了解更多:如何为Magento 2创建自定义模块

常用目录

以下是一些常见的模块目录:

  • Block:包括PHP视图类作为模块逻辑模型视图控制器(MVC)垂直实现的一部分。
  • Controller:包括PHP控制器类作为模块逻辑MVC垂直实现的一部分。
  • etc:包括配置文件; 特别是module.xml,这是必需的。
  • Model:包括PHP模型类作为模块逻辑MVC垂直实现的一部分。
  • Setup:包括模块数据库结构和数据设置的类。安装或升级时会调用这些数据。

其他目录

可以添加这些文件夹以用于配置或其他项目辅助功能,例如本地化,插件和布局文件。

  • Api:包括任何暴露给API的PHP类。
  • Console:包括CLI命令。
  • Cron:包括cron作业定义。
  • CustomerData:包括部分文件。
  • Helper:包括聚合功能。
  • i18n:包括本地化文件。
  • Observer:包括用于执行来自侦听器的命令的文件。
  • Plugin:包括任何所需的插件。
  • UI:包括数据生成文件。
  • view:包括视图文件,包含静态视图文件,电子邮件模板,设计模板和布局文件。

4.主题文件结构

以下是典型主题文件结构的外观:

主题文件结构

了解更多:如何为Magento 2创建自定义主题

常用目录

以下是典型的主题目录:

  • etc:包括配置文件,例如view.xml文件,其中包含所有图像和缩略图的图像配置。
  • i18n:翻译词典,如果有的话。
  • media:主题预览图像可以放在此目录中。
  • web:可选目录,其中包含组织到以下文件中的静态文件:
    • css/source:包含一个主题较少的配置文件,它调用Magento UI库中全局元素的mixins,以及覆盖默认变量值的theme.less文件。
    • css/source/lib:包括覆盖存储在其中的UI库文件的视图文件lib/web/css/source/lib
    • fonts:您可以在此文件夹中放置主题的不同字体。
    • images:静态图像文件夹。
    • js:用于JavaScript文件的文件夹。

5.语言包文件结构

下面是法语的典型目录结构如何:

语言包文件结构

语言包所需的唯一目录是顶级目录。为了获得更好的性能,我建议您使用与ISO代码匹配的目录名来标识区域设置。

结论

总之,文件结构在自定义Magento 2网站方面起着至关重要的作用。通过了解文件结构中每个文件夹的功能,您可以确保在创建组件文件结构时,组件文件结构将完美运行。

相关文章

0 0 投票数
文章评分
订阅评论
提醒
0 评论
内联反馈
查看所有评论