Magento2插件开发:一个简单的 Hello World Code
当 magento2 发布官方版本后,magento2 的插件开发或者 magento2 hello world 的入门的非常受欢迎的,这就是为什么我们 magepalaza 会创立一个主题来介绍如何去新建一个简单的模块
你应该知道,插件是一个包含块 block、控制器、模型、帮助文件,配置文件 etc 的目录,并且是与特定业务逻辑相关的功能集合。这个配置文件 etc 目录包括后台配置项 admin acl / 后台菜单配置 admin menu / 配置文件 configuration. 在 magento2 中 插件是安装或放置在 magento 根目录下 app/code 中的,他的格式是 app/code//vendor 包名 modulenName 模块名。接下来 我们将按一下步骤,在 magento 新建一个 hello world 插件
在 magento 创建一个 hello world 插件#
创建一个 hello world 模块 你需要认真完成下面步骤
- 第一步:创建 hello world 模块文件夹
- 第二步:创建模块配置文件
- 第三步:创建注册文件
- 第四步:开启插件
1. 创建 hello world 模块文件夹#
插件的命名是这样的 如:扩展包名_插件名;下横线左边第一部分是扩展包名,下划线右边最后一部分是插件名。例如:Magento_HelloWorld, Mageplaza_PdfInvoice. 因此我们应该这样创建扩展包
app/code/Mageplaza/HelloWorld
2. 创建模块配置文件#
之后。我们必须创建 etc 配置目录 和 module.xml 文件
app/code/Mageplaza/HelloWorld/etc/module.xml
填入以下代码
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
<module name="Mageplaza_HelloWorld" setup_version="1.0.0">
</module>
</config>
3. 创建注册文件#
在这一步 我们要在下面路径添加 registration.php
app/code/Mageplaza/HelloWorld/registration.php
填入以下代码
<?php
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Mageplaza_HelloWorld',
__DIR__
);
4. 开启插件#
在前 3 步 我们已经创建了 Hello World 插件,接下来我们要开启它。
创建完模块后,你执行这个命令
php bin/magento module:status
你会发现这个模块是 disable 未开启的
接着我们需要开始这个模块,请执行下面这个命令
php bin/magento module:enable Mageplaza_HelloWorld
另外一种开始方式是,你可以打开这个文件
app/etc/config.php
你会发现很长一列的插件在这里,Hello_World 配置如下
...
'Mageplaza_HelloWorld' => 1,
...
至此 你的模块已经开启完毕
这步之后 当你打开浏览器访问你的站点,你或许会收到一个错误
请更新你的数据库,在你的 magento 根目录执行命令
php bin/magento setup:upgrade
执行完毕后,当你在浏览器打开你的站点,你或许会发现站点模板是凌乱的 你需要执行编译命令行修复它
php bin/magento setup:static-content:deploy
编译完成后,你可以在你的后台看到你的模块:System Configuration -> Advanced -> Disable Modules
现在我们可以创建个可控制器测试模块
在创建控制器之前,我们需要先为 Hello world 创建路由
路由在 mangento2 中分为 3 个部分 路由名,控制器名,方法名。如下所示
http://mageplaza.com/index.php/frontname/controller/action
添加路由 必须要创建 route.xml 文件
app/code/Mageplaza/HelloWorld/etc/frontend/routes.xml
这是一条前端路由,因此我们将其添加到 frontend / 文件夹中,否则我们需要将其添加到 adminhtml / 文件夹中
填入以下代码
<?xml version="1.0" ?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:App/etc/routes.xsd">
<router id="standard">
<route frontName="helloworld" id="helloworld">
<module name="Mageplaza_HelloWorld"/>
</route>
</router>
</config>
定义了第一部分的路由,URL 显示会如下
http://<yourhost.com>/helloworld/*
之后 我们继续创建控制器和方法
你需要创建下面这个文件夹
app/code/Mageplaza/HelloWorld/Controller/Index/Test.php
填入以下代码
<?php
namespace Mageplaza\HelloWorld\Controller\Index;
class Test extends \Magento\Framework\App\Action\Action
{
protected $_pageFactory;
public function __construct(
\Magento\Framework\App\Action\Context $context,
\Magento\Framework\View\Result\PageFactory $pageFactory)
{
$this->_pageFactory = $pageFactory;
return parent::__construct($context);
}
public function execute()
{
echo "Hello World";
exit;
}
}
完成之后,请执行清除缓存命令 php bin/magento cache:clean
测试
你的 URL 应该是这样
http://<yourhost.com>/helloworld/index/test
到这里完成以上步棸后,你的浏览器器将会输出 Hello World, 希望我们的引导是对于你是有用的,如果你有遇到任何问题,请留下你的评论,下一步,你可以学习如何创建一个控制器
文章非本人所作,手动翻译于 www.mageplaza.com/magento-2-module...
里面还有很多 magento2 的文章,英语好的可以直接看,差些的可以只看图片、源代码,或者一键翻译
想学英语可以侧边翻译,看得多了就能读了,之后可能会翻译一些其他的技术文章,哈哈哈哈哈哈哈哈哈
个人博客停止维护,部分博客转载到这
- 彼特城
- 2020-07-28 21:41:00
本作品采用《CC 协议》,转载必须注明作者和本文链接