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 协议》,转载必须注明作者和本文链接
滴水穿石,石破天惊----晓疯子
zhaocrazy
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!