Magento2.x 插件 Module(模块) 开发实战

本文详细介绍了Magento2.x中插件Module的开发流程,包括模块声明、路由设置、Block创建、布局文件与模板文件制作、数据库迁移以及模型、资源模型和集合的创建。通过实例操作,帮助开发者理解并掌握Magento2.x插件的开发方法。
摘要由CSDN通过智能技术生成

Magento2.x 插件 Module(模块) 开发实战

一、基本简介

1、开发的插件模块代码同一放在 : app/code/ 目录下;
2、模块的文件命名规则: app/code/namespace/module

a. namespace:这里我用的 Plugin 命名
b. module :这里我用的 Test 命名

3、测试模块目录结构如下所示:

二、测试模块实战
(一)模块声明

1、创建 module.xml 文件, app/code/Plugin/Test/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="Plugin_Test" setup_version="1.0.0" active="true" />
</config>

a. name:表示 module 的名称
b. setup_version:表示 module 的版本号

2、创建 registration.php 文件, app/code/Plugin/Test/registration.php

\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::MODULE,
    'Plugin_Test',
    __DIR__
);

3、激活模块

a. 终端切换目录到 mangent2 项目根目录 ;
b. 执行 php bin/magento setup:upgrade 命令
b. 结果:(出现该模块证明已经被加载)

(二)路由声明

1、前端路由

a. 创建前端路由时,需要新建 app/code/Plugin/Test/etc/frontend/routes.xml 文件,来声明前端控制器的名称;

<?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 id="test" frontName="test">
            <module name="Plugin_Test" before="Magento_Core"/>
        </route>
    </router>
</config>

b. router 标签说明:

id = standard 表示前端路由;

c. route 标签说明:

id : 对于 router 的唯一标识名;
frontName : 前端 URL 的控制名称;

d. module 标签说明:

name : 声明 module 的名称;
before : 表示在定义 module 之前加载;
after : 表示在定义 moduel 之后加载;

2、创建前端控制器

a. 比如 我们的前端访问路由 URL 为:web.magento2.com/test/hello/word,继续创建文件(app/code/Plugin/Test/Controller/Hello/World.php)

<?php

/**
 * Created by PhpStorm.
 * User: Admin
 * Date: 2017/12/23
 * Time: 17:21
 */
namespace Plugin\Test\Controller\Hello;

use Magento\Framework\App\Action\Action;
use Magento\Framework\App\Action\Context;
use Magento\Framework\View\Result\PageFactory;

class World extends Action
{
   
    /** @var  \Magento\Framework\View\Result\Page */
    protected $resultPageFactory;

    /**
     * World constructor.
     *
     * @param Context    $context
     * @param PageFactory $resultPageFactory
     */
    public function __construct(Context $context, PageFactory $resultPageFactory)     {
   
        $this->resultPageFactory = $resultPageFactory;
        parent::__construct($context);
    }

    /**
     *
     * @return \Magento\Framework\View\Result\PageFactory
     */
    public function execute()
    {
   
        echo "Web Hello World !";
        die;
    }
}

b. 问刚才的路由 URL,就可以看到浏览器输出内容(Web Hello World !)了。( 记得经常先执行 php bin/magento setup:upgrade 该命令。)

(三)创建 Block

1、上面我们说了如何从控制器输出内容到页面,但是真正与浏览器页面最相关的还是

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值