如何在Magento 2中创建模块

我 们将讨论如何在Magento 2创建Hello World模块的主题,以帮助您立即创建最清晰,最简单的方法。请记住,local/ community/ core/ folders仅在Magento 1中存在这个概念,您将不会在Magento 2中使用它们。

在Magento 2中创建Hello World模块。

要创建Hello World模块,您需要完成以下高级步骤:

步骤1:创建Hello World模块的文件夹

模块的名称定义为“ VendorName_ModuleName”。第一部分是供应商的名称,最后一部分是模块的名称:例如:Magento_HelloWorld,Mageplaza_Pdf_Invoice,Mageplaza_One_step_checkout。重点遵循以下指南来创建文件夹:

 app/code/Mageplaza/HelloWorld

步骤2:创建etc / module.xml文件。

然后,有必要创建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:建立etc / registration.php档案

在此步骤中,我们将添加registration.php以下指南:

app/code/Mageplaza/HelloWorld/registration.php

内容将是:

<?php
\Magento\Framework\Component\ComponentRegistrar::register(
	\Magento\Framework\Component\ComponentRegistrar::MODULE,
	'Mageplaza_HelloWorld',
	__DIR__
);

步骤4:启用模块

完成步骤3,我们已经创建了HelloWorld模块。我们将在此步骤中启用此模块

创建模块后,如果您以以下方式运行命令:

 php bin/magento module:status

您应该看到该模块现已禁用:

禁用模块列表: Mageplaza_HelloWorld

按照确切的指南立即启用该模块,运行命令如下:

php bin/magento module:enable Mageplaza_HelloWorld

或通过其他方式,您可以访问文件:

 app/etc/config.php

您会在那里看到一长串模块,也只需添加您的模块

...
  'Mageplaza_HelloWorld' => 1, 
  ....

您的模块现在应该可用。

完成此步骤后,当您在浏览器中打开网站时,会出现错误提示

请升级您的数据库:从Magento根目录运行“ bin / magento setup:upgrade”。

让我们运行命令:

  php bin/magento setup:upgrade

完成后,当您在浏览器中打开网站时,您会看到该网站的布局(如果有已损坏)。没有,则 可以不操作下面的命令。

请运行命令

php bin/magento setup:static-content:deploy

解决这个问题。

部署完成后,您还可以在System Configuration -> Advanced -> Disable ModulesOutput的后端查看模块。

现在,我们将创建一个控制器来测试模块。

在创建控制器之前,我们将为HelloWorld模块创建一个路由。

magento中的路线分为3个部分:路线头名,控制器和操作,如下例所示:

http://mageplaza.com/index.php/frontname/controller/action

要添加路由,必须创建routes.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清除缓存并检查结果。

您的网址现在应为:

 http://<yourhost.com>/helloworld/index/test

完成所有步骤后,Hello World打开URL时,输出应显示在浏览器中。我们希望我们的指南对您非常有用和有效。

效果如下图:

结果图

Leave a comment

您的电子邮箱地址不会被公开。 必填项已用 * 标注