美文网首页
Magento 2模块从头开始 - 第1部分:模块设置

Magento 2模块从头开始 - 第1部分:模块设置

作者: 搬砖家 | 来源:发表于2018-06-11 17:32 被阅读59次

Magento 2模块从头开始 - 第1部分:模块设置

Magento 2已经发布!这整个系列已经更新,以反映自我最初写这篇文章以来的变化。我使用Composer安装Magento 2,我建议你这样做!学习如何在这里

如果你在这里,那么你就会很兴奋,因为我正在从头开始创建一个完整的Magento 2模块!本系列的这一部分将介绍如何设置您的模块,以便可以通过Composer进行安装。

要通过Composer安装模块,我们需要将其设置为公共版本控制的存储库,并将其提交给packagist.org。我会带你了解你的composer.json应该是什么样的,最好还是留给Composer

我会假设你已经设置了一个基本的存储库,并且你熟悉CLI。

结构模块

现在我们来设置我们的基本模块结构:

    etc/module.xml
    registration.php

在根目录中,我们要创建一个composer.json文件。它应该看起来像这样:

    {
        "name": "ashsmith/magento2-blog",
        "description": "A simple blog module.",
        "type": "magento2-module",
        "version": "1.0.0",
        "license": [
            "OSL-3.0",
            "AFL-3.0"
        ],
        "require": {
            "php": "~5.5.0|~5.6.0",
            "magento/magento-composer-installer": "*"
        },
        "extra": {
            "map": [
                [
                    "*",
                    "Ashsmith/Blog"
                ]
            ]
        }
    }

这只是我想解释的一些元素,因为其中一些可能对您不熟悉。

    "type": "magento2-module"

这将我们的repo定义为一个magento2模块,当某人将你的模块作为对Magento 2安装的依赖时,这是非常重要的,作曲家将会知道如何处理它!这让我们接下来的一点

    "extra": {
        "map": [
            [
                "*",
                "Ashsmith/Blog"
            ]
        ]
    }

它所做的是创建一个地图,它会告诉Composer如何安装此模块。

即:所有(*)都应该放入文件夹中:Ashsmith/Blog。这意味着我们的模块将被安装到:app/code/Ashsmith/Blog

如果您想了解更多信息,请前往Alan Kent的博客!这是一篇关于Magento 2和作曲家的精彩文章

您要创建的第一个文件是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="Ashsmith_Blog" setup_version="1.0.0" />
    </config>

注意到Schema位置有点奇怪吗?你的IDE不会证明这一点,但你可以解决这个问题!这里介绍PHPStorm中的PHPStorm:XML Schema解决方案

接下来,我们需要一个registration.php位于模块根目录的文件。这是由Magento框架拾取,并将处理注册您的模块与Magento。

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

现在,这样做完成了我们的模块,但它在Magento中还不行。我们需要启用它,然后升级数据库。像这样:

    bin/magento module:status # this will give us the status of each module. It'll show ours as disabled.
    bin/magento module:enable Ashsmith_Blog # this will enable our module
    bin/magento setup:upgrade # upgrade the system, essentially this will make sure any setup scripts have been run and the current module version saved to the setup_module table.
    bin/magento module:status # confirm our module has been enabled!

如果您想跳过模块的Composer安装,只需创建app/code目录(如果该目录尚不存在),然后将代码复制到以下结构:app/code/Ashsmith/Blog/

结论

我们现在已经和作曲家一起建立了我们的模块!如果您推入公共回购协议,请将其注册到packagist,您将可以非常轻松地安装它!

接下来,我将介绍如何在Magento 2中创建模型和资源模型

您可以在GitHub上查看完整的模块。Magento 2博客模块

相关文章

网友评论

      本文标题:Magento 2模块从头开始 - 第1部分:模块设置

      本文链接:https://www.haomeiwen.com/subject/nubheftx.html