Magento 2模块开发或 Magento 2 Hello World趋势迅速增加,而Magento发布正式版。这就是为什么我们 - sbboke--正在讨论一个介绍如何创建一个简单模块的主题。
如你所知,该模块是一个包含目录块,控制器,型号,helper,etc-这涉及到一个特定的业务功能。该etc文件夹包含管理ACL,管理菜单,配置。在Magento 2中,模块将在app/codeMagento安装目录中生效,格式如下:app/code//。现在我们将按照这些步骤创建一个可以在Magento 2上运行并显示的简单模块Hello World
为Magento 2创建Hello World模块
要创建Hello World模块,您需要完成以下高级步骤:
- 第1步:创建Hello World模块的文件夹
- 第2步:创建etc / module.xml文件
- 第3步:创建etc / registration.php文件
- 第4步:启用模块
第1步:创建Hello World模块的文件夹
模块名称定义为VendorName_ModuleName
。第一部分是供应商的名称,最后一部分是模块的名称:例如:Magento_HelloWorld
,Mageplaza_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>
第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,
...
您的模块现在应该可用。
完成此步骤后,当您在浏览器中打开您的网站时,您将收到错误消息
请升级您的数据库:bin/magento setup:upgrade
从Magento根目录运行。
让我们运行命令:
php bin/magento setup:upgrade
完成后,当您在浏览器中打开您的网站时,您将看到网站的布局已损坏
请运行deloy命令行来修复它。
php bin/magento setup:static-content:deploy
部署完成后,您还可以从后端看到您的模块System Configuration -> Advanced -> Disable Modules Output
。
现在,我们将创建一个控制器来测试模块。
在创建控制器之前,我们将为HelloWorld模块创建一个路由。
magento中的Route分为3个部分:Route frontname,controller和action,如下例所示:
http://xxxx.com/index.php/frontname/controller/action
要添加路由,必须创建routes.xml文件
app/code/Mageplaza/HelloWorld/etc/frontend/routes.xml
因为这是一个前端路由,我们在前端/文件夹中添加它,否则我们需要将它添加到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
检查结果。
您的网址现在应该是:
http://<yourhost.com>/helloworld/index/test
完成所有步骤后,Hello World
打开URL时,输出应显示在浏览器中 。我们希望我们的指南对您非常有用和有效。如有任何问题,请随时留言。在下一个教程中,您将学习如何创建控制器