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 协议》,转载必须注明作者和本文链接