Magento 2 模块开发 - 简单的 Hello World 模块

参考网站:https://www.mageplaza.com/magento-2-module-development/


如您所知,模块是一个目录,其中包含与特定业务功能相关的控制器模型helperetc;etc文件夹包含管理 ACL管理菜单配置

在 Magento 2 中,模块将app/code位于 Magento 安装目录中,格式如下:app/code/<Vendor>/<ModuleName>现在我们将按照这些步骤创建一个在 Magento 2 上工作的简单模块并显示Hello World


第一步:创建Hello World模块的文件夹

模块的名称定义为VendorName_ModuleName第一部分是供应商名称,最后一部分是模块名称:例如:Magento_HelloWorldMageplaza_PdfInvoice专注于以下指南来创建文件夹:

  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>

第三步:创建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, 
  ...

您的模块现在应该可用。

完成此步骤后,当您在浏览器中打开网站时,您会收到一条错误消息

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

让我们运行命令:

  php bin/magento setup:upgrade

完成后,当您在浏览器中打开您的网站时,您会看到网站的布局已损坏。

nba2k2球员数据

请运行 deloy 命令行来修复它。

php bin/magento setup:static-content:deploy # php bin/magento setup:static-content:deploy -f

部署完成后,您还可以从后端查看您的模块System Configuration -> Advanced -> Disable Modules Output

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

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

magento 中的 Route 分为 3 个部分:Route frontname、controller 和 action,如下例所示:

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/*

例如:http://localhost/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打开 URL 时应在浏览器中显示输出。


nba2k2球员数据
请先登录后发表评论
  • 最新评论
  • 总共0条评论