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博客模块
网友评论