Magento 2开发教程 - 创建新模块

视频在youtube网站国内访问不了,可以使用翻墙软件查看。
视频地址:www.youtube.com/embed/682p52tFcmY@autoplay=1

下面是视频文字介绍:

Magento 2系统整体结构是建立在模块的基础上。通常,创建定制的第一步是构建模块。

要创建模块,需要完成以下步骤:

  1. 创建模块文件夹
  2. 创建 etc/module.xml 文件.
  3. 创建 registration.php 文件.
  4. 运行 bin/magento setup:upgrade脚本安装新模块
  5. 检查模块是否正常工作

让我们详细地看一下这些步骤。

创建模块文件夹

Magento 2模块文件夹可以创建在两个地方: app/code 和 vendor 文件夹

根据Magento 2已安装,核心模块可以位于 vendor/magento/magento-*文件夹 或 app/code/Magento/ 文件夹

您应该为您的新模块选择哪些位置?

如果为特定项目构建模块,最好选择应用app/code文件夹并提交到项目的存储库中。

如果你要构建一个可重用的扩展,最好使用composer来创建它,并将你的模块放在 vendor/<YOUR_VENDOR>/module-something 文件夹。

在Magento 2每个模块的名称由两部分组成–vendor和模块本身。换句话说,模块分为vendor,所以你需要定义vendor和模块名称。在这个例子中,让我们的vendor名称“Learning”和“firstunit”模块。

 

让我们创建文件夹 app/code/Learning 和这个文件夹里面放一个文件夹:FirstUnit。如果您使用命令行,代码:

  1. cd 到根文件夹
  2. mkdir app/code/Learning
  3. mkdirapp/code/Learning/FirstUnit

确保您有权限在安装中创建文件和文件夹

下一步, 你需要创建 etc/module.xml 文件。 此文件需要模块存在。

此文件包含以下信息:

  • 模块名称
  • 模块版本
  • 模块依赖

模块名称定义的文件夹我们刚刚创建的,因为在Magento 2类名称必须遵循的文件夹结构。因为我们创建了文件夹Learning/FirstUnit, our module name will be Learning_FirstUnit 所有属于这个模块的类将从 Learning\FirstUnit – 示例: Learning\FirstUnit\Observer\Test.

模块版本表示数据库架构和数据的当前版本,并用于升级。 例如,假设您决定在模块中修改表的架构。
你怎么能确保在所有部署代码的情况下会发生这种变化?通过直接SQL查询修改数据库将不起作用。相反,Magento
2已经安装和升级的每一个模块的脚本(可选)。这些脚本包含修改数据库架构或数据的命令。跟踪是否执行脚本或不使用Magento
2模块版本。每次执行新的数据库更改时,您将实现模块的新版本并更改相应的版本 module.xml. Magento的保存在数据库的当前模块的版本,如果数据库中的一个值与 module.xml 不匹配, 它将执行升级代码。

 

依赖。如果一个模块依赖于另一个模块,module.xml 文件将有一个特殊声明,定义当前模块依赖的模块列表。在这个例子中,我们将使我们的模块依赖magento_catalog。

使用以下命令行代码,创建文件夹 app/code/Learning/FirstUnit/etc:

 
  1. mkdir app/code/Learning/FirstUnit/etc

然后把下面的代码:

 
  1. <?xml version="1.0"?>
  2. <config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
  3. <module name="Learning_FirstUnit" setup_version="0.0.1"> <sequence>
  4. <module name="Magento_Catalog"/> </sequence>
  5. </module>
  6. </config>

请注意,在指定的xml文件中:

  • 模块名称: Learning_FirstUnit (基于我们创建的文件夹)
  • 版本: 0.0.1 (我们的模块的初始版本)
  • 依赖: Magento_Catalog. 我们可以有多重依赖。在这种情况下, 我们会把<module name=”..” /> 序列节点下的节点。

创建registration.php 文件

每个模块必须有这个文件,它告诉Magento如何定位模块。继续我们的例子,创建文件app/code/Learning/FirstUnit/registration.php。然后把下面的内容放进去:

 
  1. <?php \Magento\Framework\Component\ComponentRegistrar::register(
  2. \Magento\Framework\Component\ComponentRegistrar::MODULE, 'Learning_FirstUnit',
  3. __DIR__
  4. );

registration.php 是所有模块都遵循相同模式的标准化文件。

唯一不同的是模块名,在我们的例子中是Learning_FirstUnit

运行 “setup:upgrade” 命令

运行此命令使您的新模块主动通知Magento的存在。

 
  1. php bin/magento setup:upgrade

它应该呼应大量的输出,其中一行应该是Learning_FirstUnit. 验证此行代码是否存在。

检查新模块是否处于激活状态

到目前为止,我们还没有添加任何有用的代码到我们的模块-它仍然是空的(因此无形的)。 为了验证它已被确认,检查文件 app/etc/env.php. 它有一个自动生成模块的列表是活跃的。

手动更改此列表!

 
  1. cat app/etc/env.php | grep Learning_FirstUnit

采用这些步骤,你可以成功地创建Magento 2新模块。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/437722.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python 数据分析三剑客之 Matplotlib(六):直方图 / 柱状图 / 条形图的绘制

CSDN 课程推荐&#xff1a;《Python 数据分析与挖掘》&#xff0c;讲师刘顺祥&#xff0c;浙江工商大学统计学硕士&#xff0c;数据分析师&#xff0c;曾担任唯品会大数据部担任数据分析师一职&#xff0c;负责支付环节的数据分析业务。曾与联想、亨氏、网鱼网咖等企业合作多个…

Hive环境搭建(完整版)-配置

Hive部署&#xff1a; 前提&#xff1a; 在安装Hive之前&#xff0c;要求先预装&#xff1a; - 安装JDK 8 - 安装Hadoop-2.7.7 - 安装MySQL 5.6.x&#xff01;&#xff01;&#xff01;我这里主节点叫chun1&#xff0c;根据自己的进行修改 一、安装 1. 下载hive&#xff0c…

Magento微信支付接口开发小记

姗姗来迟的Magento微信支付接口插件 半年之前&#xff0c;有朋友网站需要接入微信支付&#xff0c;是Magento站&#xff0c;于是花费了近二周时间&#xff0c;研究微信开发文档、示例代码&#xff0c;并初步制作了个支付模块&#xff0c;不巧的是&#xff0c;朋友的微信支付接…

猿浪

本文作者&#xff1a;datamonday 原文链接&#xff1a;https://blog.csdn.net/weixin_39653948/article/details/105981392 转载此文已经过作者本人同意&#xff01; 《猿浪》那些口口声声&#xff0c;一代不如一代的人&#xff0c;应该看着你们&#xff1b;像我一样&#xff…

【转】你不能访问此共享文件夹,因为你组织的安全策略阻止未经身份验证的来宾访问

电脑出现“你不能访问此共享文件夹&#xff0c;因为你组织的安全策略阻止未经身份验证的来宾访问。”的原因是系统错误导致的&#xff0c;具体解决两个方案 一、修改Lanman WorkStation 1、首先打开计算机&#xff0c;再计算机内敲击windowR组合键打开运行界面。 2、然后在界…

VMware安装出错-无法安装服务“VMware Authorization Service”,请确保您有足够的权限安装系统服务;centos7网络服务不可用,主ip地址:网络信息不可用

今天遇到一个bug&#xff0c;VMware突然网络服务不可用了&#xff0c;虚拟机里右上角有网络但是点开不显示网络的连接信息。也不能上网&#xff0c;不能ping通外网&#xff08;百度&#xff09; VMware下显示 主ip地址&#xff1a;网络信息不可用 尝试了重启网络&#xff0c;重…

Python 数据分析三剑客之 Matplotlib(七):饼状图的绘制

CSDN 课程推荐&#xff1a;《Python 数据分析与挖掘》&#xff0c;讲师刘顺祥&#xff0c;浙江工商大学统计学硕士&#xff0c;数据分析师&#xff0c;曾担任唯品会大数据部担任数据分析师一职&#xff0c;负责支付环节的数据分析业务。曾与联想、亨氏、网鱼网咖等企业合作多个…

访问网络共享时出现“拒绝访问”

今天公司副总说要我连接一下前面的打印机&#xff0c;二话不说&#xff0c;屁颠屁颠的就到现场了。虽然是简单的活&#xff0c;但也得去不是。 到老总计算机上 开始--运行 \\192.168.0.45 &#xff08;装有打印的计算机&#xff0c;OS是XP系统&#xff01;&#xff09; 结果出…

zookeeper集群自动启动-关闭-查询的shell脚本

由于zookeeper启动需要在每台虚拟机都进行zkServer.sh start&#xff0c;很不方便&#xff0c;由此写个shell脚本来进行一个命令全部启动。 前提&#xff1a;配置好ssh免密登录&#xff0c;并且每台虚拟机都可以互通&#xff0c;没配置好的可以看下我的hadoop集群搭建里有免密…

Python 数据分析三剑客之 Matplotlib(八):等高线 / 等值线图的绘制

CSDN 课程推荐&#xff1a;《Python 数据分析与挖掘》&#xff0c;讲师刘顺祥&#xff0c;浙江工商大学统计学硕士&#xff0c;数据分析师&#xff0c;曾担任唯品会大数据部担任数据分析师一职&#xff0c;负责支付环节的数据分析业务。曾与联想、亨氏、网鱼网咖等企业合作多个…

【转】Office365完整离线安装包下载及自定义安装教程

Office365部署方法 概要提示&#xff1a; 全文内容归结起来其实也就2条命令 下载&#xff1a;D:\365\setup.exe /download D:\365\Configuration.xml&#xff08;此命令为1条&#xff0c;不可以拆分为2行输入&#xff09; 安装&#xff1a;D:\365\setup.exe /configure D:\3…

Python 数据分析三剑客之 Matplotlib(九):极区图 / 极坐标图 / 雷达图的绘制

CSDN 课程推荐&#xff1a;《Python 数据分析与挖掘》&#xff0c;讲师刘顺祥&#xff0c;浙江工商大学统计学硕士&#xff0c;数据分析师&#xff0c;曾担任唯品会大数据部担任数据分析师一职&#xff0c;负责支付环节的数据分析业务。曾与联想、亨氏、网鱼网咖等企业合作多个…

Hive启动报错org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.server.namenode.SafeModeE...

Caused by: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.server.namenode.SafeModeException): Cannot create directory /tmp/hive/root/ee19ad01-2190-4759-9a94-6cc09771ecf7. Name node is in safe mode. 因为没有关闭安全模式&#xff0c;把安全模式关…

【转】中国式管理最有趣的地方,可能就在这些关键词之中

曾仕强老先生的中国式管理&#xff0c;就像中医中药&#xff0c;你说他对吗&#xff1f;根本不符合现代的科学逻辑&#xff0c;有些甚至荒诞。然而&#xff0c;即便这样&#xff0c;依然能西医所不能&#xff0c;这就是他的魅力。让我们一探究竟&#xff0c;对也好&#xff0c;…

Python 数据分析三剑客之 Matplotlib(十):3D 图的绘制

CSDN 课程推荐&#xff1a;《Python 数据分析与挖掘》&#xff0c;讲师刘顺祥&#xff0c;浙江工商大学统计学硕士&#xff0c;数据分析师&#xff0c;曾担任唯品会大数据部担任数据分析师一职&#xff0c;负责支付环节的数据分析业务。曾与联想、亨氏、网鱼网咖等企业合作多个…

Hbase学习-一步一步慢慢来

HBASE是一个分布式系统 其中有一个管理角色&#xff1a; HMaster(一般2台&#xff0c;一台active&#xff0c;一台backup)&#xff08;我用的五台&#xff09; 其他的数据节点角色&#xff1a; HRegionServer(很多台&#xff0c;看数据容量) 1.安装可以参考我的Hbase安装&…

Python 数据分析三剑客之 Matplotlib(十一):最常用最有价值的 50 个图表

CSDN 课程推荐&#xff1a;《Python 数据分析与挖掘》&#xff0c;讲师刘顺祥&#xff0c;浙江工商大学统计学硕士&#xff0c;数据分析师&#xff0c;曾担任唯品会大数据部担任数据分析师一职&#xff0c;负责支付环节的数据分析业务。曾与联想、亨氏、网鱼网咖等企业合作多个…

【转】Windows Server 2012 R2 双网卡绑定

双网卡绑定主要有以下两点好处&#xff1a; 1、实现网络容错&#xff1a;主主模式和主被模式 2、带宽聚合 首先准备工作需要两台虚拟机&#xff0c;Server01是目标服务器&#xff0c;需要有两块网卡&#xff0c;并且清空两块网卡的现有配置&#xff0c;Server02作为测试机。 …

解决Hbase输入list,创建表报错,输入status可以,org.apache.hadoop.hbase.ipc.ServerNotRunningYetException: S

今天恢复了一下快照&#xff0c;然后hbase出现了问题 2019-08-25 00:59:55,810 INFO [RpcServer.default.FPBQ.Fifo.handler28,queue1,port16000] client.RpcRetryingCallerImpl: ,1 is not online on chun4,16020,1566665941494at org.apache.hadoop.hbase.regionserver.HRe…

运行mapreduce程序yarn的web端显示进度

在hadoop配置文件mapred-site.xml 加上 <property><name>mapreduce.framework.name</name><value>yarn</value> </property>重新启动即可