magento php 所需模块,magento博客 - Magento2 创建基本模块
我們將在Magento 2中創(chuàng)建一個(gè)簡(jiǎn)單的模塊,完成后,模塊將在自定義前端路由的內(nèi)容中顯示“Hello world!”。
先決條件
毋庸置疑,您需要最新的Magento 2版本
在我們開始Magento 2模塊開發(fā)之前,有兩件事是人們經(jīng)常忘記的,我們建議你們?nèi)プ?#xff1a;
1.禁用Magento緩存
在開發(fā)期間禁用Magento緩存將節(jié)省您一些時(shí)間,因?yàn)槊看胃拇a時(shí)都不需要手動(dòng)刷新緩存。
禁用緩存的最簡(jiǎn)單方法是轉(zhuǎn)到?Admin → System → Cache Management → select all cache types禁用它們。
2.將Magento設(shè)為開發(fā)者模式
您應(yīng)該將Magento設(shè)為開發(fā)者模式,以確保您能看到出現(xiàn)的所有錯(cuò)誤。
所以請(qǐng)打開終端并轉(zhuǎn)到Magento 2根目錄,然后運(yùn)行以下命令:
php bin/magento deploy:mode:set developer
創(chuàng)建模塊文件和文件夾
模塊設(shè)置
如果您已經(jīng)使用了Magento 1版本,那么您已經(jīng)習(xí)慣了術(shù)語(yǔ)代碼池——位于app/code文件夾中的社區(qū)、核心和本地文件夾。在MaGeto 2中,沒(méi)有更多的代碼池。模塊按命名空間分組,直接放置在App/code文件夾中。
如果您使用過(guò)Magento 1版本,那么您已經(jīng)習(xí)慣了代碼池 - 位于app/code文件夾中的community,core和local文件夾。在Magento 2中,沒(méi)有更多的代碼池。模塊按命名空間分組,并直接放在app/code文件夾中。
因此,我們的第一步是創(chuàng)建注冊(cè)Magento模塊所需的模塊文件夾和必要文件。
1.創(chuàng)建以下文件夾:
app/code/Magease
app/code/Magease/Helloworld
Magease文件夾是模塊的命名空間,Helloworld是模塊的名稱。
注意:如果您的app目錄中沒(méi)有代碼文件夾,請(qǐng)手動(dòng)創(chuàng)建它。
2.現(xiàn)在我們有了一個(gè)模塊文件夾,我們需要使用以下代碼在app/code/Magease/Helloworld/etc文件夾中創(chuàng)建一個(gè)module.xml文件:
3.要注冊(cè)模塊,在app/code/Magease/Helloworld文件夾中創(chuàng)建registration.php文件并添加以下代碼:
\Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::MODULE,
'Magease_Helloworld',
__DIR__
);
4.打開終端并轉(zhuǎn)到Magento 2根目錄,運(yùn)行以下命令:
php bin/magento setup:upgrade
如果要確保模塊已安裝,可以轉(zhuǎn)到Admin_Stores_Configuration_Advanced_Advanced并檢查模塊是否存在于列表中,或者可以打開app/etc/config.php并檢查數(shù)組中的“Magease_Helloworld”鍵,該鍵的值應(yīng)該設(shè)置為1。
創(chuàng)建一個(gè)控制器
1.首先我們需要定義路由,在app/code/Magease/Helloworld/etc/frontend文件夾中創(chuàng)建routes.xml文件并添加以下代碼:
在這里,我們使用id為“helloworld”定義我們的前端路由器和路由。
該frontName屬性將是我們的URL的第一部分。
在Magento 2中,URL以這種方式構(gòu)造:
//
因此在我們的示例中,最終的URL將如下所示:
helloworld/index/index
2.現(xiàn)在我們?cè)赼pp/code/Magease/Helloworld/Controller/Index文件夾下創(chuàng)建的index.php文件并添加以下代碼:
namespace Magease\Helloworld\Controller\Index;
use Magento\Framework\App\Action\Context;
class Index extends \Magento\Framework\App\Action\Action
{
protected $_resultPageFactory;
public function __construct(Context $context, \Magento\Framework\View\Result\PageFactory $resultPageFactory)
{
$this->_resultPageFactory = $resultPageFactory;
parent::__construct($context);
}
public function execute()
{
$resultPage = $this->_resultPageFactory->create();
return $resultPage;
}
}
在Magento 1中,每個(gè)控制器可以有多個(gè)action,但在Magento 2中并非如此。在Magento 2中,每個(gè)action都有自己的類,它執(zhí)行了execute()方法。
創(chuàng)建一個(gè)塊
我們將使用getHelloWorldTxt()方法創(chuàng)建一個(gè)簡(jiǎn)單的塊類,該方法返回“Hello world”字符串。
1.在app/code/Magease/Helloworld/Block文件夾中創(chuàng)建Helloworld.php文件并添加以下代碼:
namespace Magease\Helloworld\Block;
class Helloworld extends \Magento\Framework\View\Element\Template
{
public function getHelloWorldTxt()
{
return 'Hello world!';
}
}
創(chuàng)建布局和模板文件
在Magento 2中,布局文件和模板放置在模塊內(nèi)的視圖文件夾中。在視圖文件夾中,我們可以有三個(gè)子文件夾:adminhtml,base和frontend。
adminhtml文件夾用于admin,frontend文件夾用于前端,base文件夾用于admin和frontend文件。
1.首先,我們將在app/code/Magease/Helloworld/view/frontend/layout文件夾中創(chuàng)建helloworld_index_index.xml文件,添加以下代碼:
每個(gè)頁(yè)面都有一個(gè)布局,對(duì)于我們的控制器action,布局句柄是helloworld_index_index。您可以為每個(gè)布局句柄創(chuàng)建布局配置文件
在我們的布局文件中,我們向content容器中添加了一個(gè)塊,并將塊的模板設(shè)置為helloworld.phtml,我們將在下一步中創(chuàng)建它。
2.在app/code/Magease/Helloworld/view/frontend/templates文件夾中創(chuàng)建helloworld.phtml文件并添加以下內(nèi)容:
<?php echo $this->getHelloWorldTxt(); ?>
$this變量正在對(duì)block類進(jìn)行重新設(shè)置,執(zhí)行g(shù)etHelloWorldTxt()方法將返回字符串“Hello world!”。
在瀏覽器中打開/helloworld/index/indexURL,您會(huì)看到以下內(nèi)容:
總結(jié)
以上是生活随笔為你收集整理的magento php 所需模块,magento博客 - Magento2 创建基本模块的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: html5 css 三角形,css怎么画
- 下一篇: 动态规划算法php,php算法学习之动态