magento php 所需模块,magento博客 - Magento2 创建基本模块

我们将在Magento 2中创建一个简单的模块,完成后,模块将在自定义前端路由的内容中显示“Hello world!”。

先决条件

毋庸置疑,您需要最新的Magento 2版本

在我们开始Magento 2模块开发之前,有两件事是人们经常忘记的,我们建议你们去做:

1.禁用Magento缓存

在开发期间禁用Magento缓存将节省您一些时间,因为每次更改代码时都不需要手动刷新缓存。

禁用缓存的最简单方法是转到 Admin → System → Cache Management → select all cache types禁用它们。

2.将Magento设为开发者模式

您应该将Magento设为开发者模式,以确保您能看到出现的所有错误。

所以请打开终端并转到Magento 2根目录,然后运行以下命令:

php bin/magento deploy:mode:set developer

创建模块文件和文件夹

模块设置

如果您已经使用了Magento 1版本,那么您已经习惯了术语代码池——位于app/code文件夹中的社区、核心和本地文件夹。在MaGeto 2中,没有更多的代码池。模块按命名空间分组,直接放置在App/code文件夹中。

如果您使用过Magento 1版本,那么您已经习惯了代码池 - 位于app/code文件夹中的community,core和local文件夹。在Magento 2中,没有更多的代码池。模块按命名空间分组,并直接放在app/code文件夹中。

因此,我们的第一步是创建注册Magento模块所需的模块文件夹和必要文件。

1.创建以下文件夹:

app/code/Magease

app/code/Magease/Helloworld

Magease文件夹是模块的命名空间,Helloworld是模块的名称。

注意:如果您的app目录中没有代码文件夹,请手动创建它。

2.现在我们有了一个模块文件夹,我们需要使用以下代码在app/code/Magease/Helloworld/etc文件夹中创建一个module.xml文件:

3.要注册模块,在app/code/Magease/Helloworld文件夹中创建registration.php文件并添加以下代码:

\Magento\Framework\Component\ComponentRegistrar::register(

\Magento\Framework\Component\ComponentRegistrar::MODULE,

'Magease_Helloworld',

__DIR__

);

4.打开终端并转到Magento 2根目录,运行以下命令:

php bin/magento setup:upgrade

如果要确保模块已安装,可以转到Admin_Stores_Configuration_Advanced_Advanced并检查模块是否存在于列表中,或者可以打开app/etc/config.php并检查数组中的“Magease_Helloworld”键,该键的值应该设置为1。

创建一个控制器

1.首先我们需要定义路由,在app/code/Magease/Helloworld/etc/frontend文件夹中创建routes.xml文件并添加以下代码:

在这里,我们使用id为“helloworld”定义我们的前端路由器和路由。

该frontName属性将是我们的URL的第一部分。

在Magento 2中,URL以这种方式构造:

//

因此在我们的示例中,最终的URL将如下所示:

helloworld/index/index

2.现在我们在app/code/Magease/Helloworld/Controller/Index文件夹下创建的index.php文件并添加以下代码:

namespace Magease\Helloworld\Controller\Index;

use Magento\Framework\App\Action\Context;

class Index extends \Magento\Framework\App\Action\Action

{

protected $_resultPageFactory;

public function __construct(Context $context, \Magento\Framework\View\Result\PageFactory $resultPageFactory)

{

$this->_resultPageFactory = $resultPageFactory;

parent::__construct($context);

}

public function execute()

{

$resultPage = $this->_resultPageFactory->create();

return $resultPage;

}

}

在Magento 1中,每个控制器可以有多个action,但在Magento 2中并非如此。在Magento 2中,每个action都有自己的类,它执行了execute()方法。

创建一个块

我们将使用getHelloWorldTxt()方法创建一个简单的块类,该方法返回“Hello world”字符串。

1.在app/code/Magease/Helloworld/Block文件夹中创建Helloworld.php文件并添加以下代码:

namespace Magease\Helloworld\Block;

class Helloworld extends \Magento\Framework\View\Element\Template

{

public function getHelloWorldTxt()

{

return 'Hello world!';

}

}

创建布局和模板文件

在Magento 2中,布局文件和模板放置在模块内的视图文件夹中。在视图文件夹中,我们可以有三个子文件夹:adminhtml,base和frontend。

adminhtml文件夹用于admin,frontend文件夹用于前端,base文件夹用于admin和frontend文件。

1.首先,我们将在app/code/Magease/Helloworld/view/frontend/layout文件夹中创建helloworld_index_index.xml文件,添加以下代码:

每个页面都有一个布局,对于我们的控制器action,布局句柄是helloworld_index_index。您可以为每个布局句柄创建布局配置文件

在我们的布局文件中,我们向content容器中添加了一个块,并将块的模板设置为helloworld.phtml,我们将在下一步中创建它。

2.在app/code/Magease/Helloworld/view/frontend/templates文件夹中创建helloworld.phtml文件并添加以下内容:

<?php echo $this->getHelloWorldTxt(); ?>

$this变量正在对block类进行重新设置,执行getHelloWorldTxt()方法将返回字符串“Hello world!”。

在浏览器中打开/helloworld/index/indexURL,您会看到以下内容:

132ce448ae77b5e136e8fcb00542b707.png

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

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

相关文章

手机安装linux不root权限管理,不root手机也能使用linux环境并安装msf等工具

抵挡不住物理键盘的诱惑在key2首发的时候下手了。黑莓的天性&#xff0c;不能root。之前用nexus习惯用linux deploy搭建的kali环境需要root权限&#xff0c;所以虽然key2敲命令很爽&#xff0c;但是不能使用linux deploy真的很可惜。然后找到了termux这个轻量化的神器。无需roo…

linux中group命令详解,linux groupmod命令参数及用法详解

需要更改群组的识别码或名称时&#xff0c;可用groupmod指令来完成这项工作。接下来是小编为大家收集的linux groupmod命令参数及用法详解&#xff0c;希望能帮到大家。linux groupmod命令参数及用法详解groupmod(group modify)功能说明&#xff1a;更改群组识别码或名称。语 …

实时屏幕监控 linux面板,分享|LXDE、Xfce 及 MATE 桌面环境下的又一系统监视器应用:Multiload-ng...

Multiload-ng 是一个 GTK2 图形化系统监视器应用&#xff0c;可集成到 Xfce、LXDE 及 MATE 的桌面面板中&#xff0c; 它 fork 自原来的 GNOME Multiload 应用。它也可以运行在一个独立的窗口中。Multiload-ng 的特点有&#xff1a;支持以下资源的图形块&#xff1a; CPU&#…

盒子 Box

UVa1587 思路&#xff1a; 1.输入每个面的长宽并将每个面较长的一边放在前面 2.判断是否存在三对面分别相等 3.判断是否存在三组四棱相等 #include <stdio.h> #include <stdlib.h> #define maxn 100int cmp(const void* e1, const void* e2) {return (int)(*(d…

android 复用标题栏,Android基础---使用ToolBar教你打造一个通用的标题栏

现在项目中一般都会使用标题栏&#xff0c;谷歌在2014年推出了新的app bar---ToolBar&#xff0c;代替了以前使用的ActionBar。在做项目中会经常用到这个ToolBar&#xff0c;虽然用的很多&#xff0c;但是自己对它如何用还不是很明白&#xff0c;今天就来简单的学习下这个控件的…

android html 显示表格边框,tablelayout表格布局详解

如果你已经下载好MT4软件(很多专业外汇平台都有提供下载的)&#xff0c;在手机桌面找到图表打开&#xff0c;然后选择好交易商&#xff0c;输入账号密码就可以了。TableLayout怎样实现表格布局表格布局的子对象不能指定 layout_width 属性.宽度永远是 MATCH_PARENT。不过子对象…

华为注册鸿蒙商标与三海经,华为注册了一本《山海经》?除了鸿蒙商标,还有很多...

原标题&#xff1a;华为注册了一本《山海经》&#xff1f;除了鸿蒙商标&#xff0c;还有很多5月25日消息 昨天IT之家报道&#xff0c; 国家知识产权商标局网站显示&#xff0c;&#xff0c;适用于第9类别和第42类别。申请日期为2018年8月24日。此前传闻称&#xff0c;华为OS操作…

android开机渲染视频太久,Android过度渲染优化解决方案

过度绘制是发生的每一次应用要求系统上别的画的东西。“调试GPU透支”工具覆盖上你的屏幕的色彩显示多少次像素被重绘。通过查看GPU透支来改善应用程序的渲染时间。方法1&#xff1a;打开手机设置—>开发人员工具选项—>调试GPU过度绘制—>显示GPU视图更新&#xff0c…

小米android停止,小米由于错误而停止将Android 10推广到MiA3

当小米上周宣布将为Mi A3和Redmi Note 8用户推出Android 10更新时&#xff0c;用户为最终升级他们的设备(至少在软件方面)感到非常兴奋。但是&#xff0c;这种喜悦似乎是短暂的。用户抱怨说&#xff0c;尽管收到更新通知&#xff0c;但他们仍无法下载更新。有些人甚至看到更新在…

html两张图片无缝合成一张,怎么用PS把两张图片合成一张 PS无缝拼图边缘如何处理...

PS怎么把两张图片合成一张&#xff1f;PS无缝贴图怎么用&#xff1f;PS无缝拼接要用什么工具&#xff1f;PS无缝拼图快捷键是什么&#xff1f;PS无缝拼图有色差怎么办&#xff1f;PS把两张图片合成一张边缘怎么修&#xff1f;PS无缝拼接图片边缘如何处理&#xff1f;PS把一张图…

html 属于mvvm框架,前端MVVM框架avalon揭秘 - HTML编译器

MVVM试图更加清晰的讲用户界面(UI)开发从应用程序的业务逻辑与行为中心分离&#xff0c;由于&#xff0c;不少这样的模式的实现都须要利用声明式数据绑定来实现讲View(视图)工做从其余层分离css因此出现了一大堆自定义的声明式的语法&#xff1a;html如:Avalonnode顾名思义,自定…

html的opacity标签,css中opacity是什么意思

css样式 给div样式opacity:0 是什么意思透明度 注意 ie低版本要实现透明度必须用ie特有的滤镜 而非简单的opacityCSS中 not(.active) { opacity: 0.3; } 是什么意思css的opacity让div和里面的div透明了怎样才让div里面的div不透明&#xff1f;不透明度会作用于整个元素以及它所…

frm考试可以用计算机,FRM考试,考生自己可以携带计算器吗?

因为FRM考试有大量的计算题&#xff0c;是需要用到计算器的&#xff0c;近日有考生咨询&#xff0c;参加考试&#xff0c;可以自己携带FRM计算器吗&#xff1f;答案当然是肯定&#xff0c;考生是可以携带FRM计算器的&#xff0c;但是要携带协会官方要求的型号&#xff0c;不是什…

不能访问win7计算机,局域网win7无法访问win10,win7访问不了局域网其他电脑

相信大家都遇到过在访问局域网时遇到过很多错误&#xff0c;导致文件无法正常进行共享&#xff0c;共享打印机等情况&#xff0c;那么当我们遇到这样的问题时应该怎么处理呢&#xff1f;接下来是小编给大家介绍的具体解决方法&#xff0c;一起来看看吧&#xff01;方法/步骤1、…

计算机开关机命令,电脑自动关机命令

有的时候我们需要让电脑在一段时间工作而不能关机&#xff0c;但是工作完成之后不关机会造成用电浪费&#xff0c;那么使用自动关机命令&#xff0c;就不用担心电脑一直开着会浪费电啦。那么电脑自动关机命令怎么设置呢&#xff1f;下面给大家介绍一下吧。电脑自动关机命令1、首…

iphone计算机的声音怎么办,苹果耳机插电脑上没声音怎么办_苹果耳机插win10电脑没声音如何解决-win7之家...

通常我们将苹果耳机插入电脑的话是可以听歌或者语音说话的&#xff0c;然而近日有不少小伙伴将苹果耳机插入到win10电脑上要使用的时候&#xff0c;却发现没有声音&#xff0c;遇到这样的问题该怎么办呢&#xff0c;可能是设置有问题&#xff0c;本文给大家讲解一下苹果耳机插w…

电气与计算机学院院长论坛报告,我校电子系举办2019年电子信息学科院长论坛暨工程教育新进展研讨会...

2019年11月24日&#xff0c;由我校电子与电气工程系主办的“2019年电子信息学科院长论坛暨工程教育新进展研讨会”在国际会议厅举行。来自东北大学、电子科技大学、东南大学、西安交通大学、西安电子科技大学、大连理工大学、北京航空航天大学、北京邮电大学、燕山大学、南京邮…

楼梯计算机公式,各种楼梯面积的计算公式汇总

楼梯计算体积踏步体积梯板体积踏步体积三角形面积(1/2*踏步宽度*踏步高度)* 梯板净宽 * 踏步个数踏步个数 踏宽数1踏宽数 楼梯净长/踏步宽度(楼梯净长&#xff1a;等于踏步段水平投影净长&#xff0c;即扣减(墙)后的长度)踏步高度 楼梯高度/(踏步个数1)梯板净宽 楼梯宽度扣…

虚拟机随服务器启动,VMware Server中虚拟机随宿主机自动启动

访问虚拟机宿主http://:8222或者 https://:8333用宿主的管理员帐号登陆.Configure OptionsEdit HostSettingsEdit Virtual Machine Startup/ShutdownSettingsRefresh Network List选择上面那个加粗的选项点击即可进入并看到下面的界面&#xff01;在vmware server里面不用那么麻…

dw服务器文件夹在哪里,Dreamweaver CC

Dreamweaver CC教程&#xff1a;查看文件和文件夹查看文件和文件夹您可以在“文件”面板中查看文件和文件夹&#xff0c;而无论它们是否与 Dreamweaver 站点相关联。在“文件”面板中查看站点、文件或文件夹时&#xff0c;您可以更改查看区域的大小。对于 Dreamweaver 站点&…