我在 XAMPP 中安装了 Magento 2 的本地副本,并开始了解新结构。然而,我在尝试设置基本模块时遇到了问题。

我创建了以下文件/文件夹结构

app/code/Heirik/Test/etc/module.xml

在这个文件中我有以下内容

<?xml version="1.0"?>
<config>
    <module name="Heirik_Test" schema_version="2.0.0">
    </module>
</config>

我刷新了商店缓存,但是当我转到商店>配置>高级时,模块未加载到列表中。根据最新的开发文档,不再需要在 XML 中将模块设置为活动状态。

我知道 Magento 正在读取 module.xml,因为如果我删除 schema_version 参数,就会收到错误。

有帮助吗?

解决方案

具有最新的Magento,这已更改为

php -f bin/magento module:enable --clear-static-content Module_Name
php -f bin/magento setup:upgrade
.

其他提示

在一些搜索,试验和错误我找到以下答案

对于现有的Magento实例,您需要注册自定义模块,如下所示:

  1. 编辑app / etc / config.php文件并在那里添加模块,并指定值“1”(已启用) 然后刷新缓存。 所以在我的情况下我必须添加
    'Heirik_Test' => 1,
    
    .

    进入应用程序/ etc / config.php中的模块阵列

甚至更容易,到mage安装dir并运行:

php -f setup/index.php module-enable --modules=MODULENAME
php -f setup/index.php update
.

因此,当尝试注册自定义模块并运行 Magento 2.2.0 时,我的问题是作曲家生成的文件 vendor/composer/autoload_files.php 当我运行作曲家更新时没有更新。

我做了什么并不重要,手动将其添加到 config.php 会让它看起来像是在工作,但运行后 magento setup:upgrade 该模块不再注册,也不再运行任何安装/升级脚本。

正确更新作曲家并三次检查后,它位于 autoload_files, ,模块注册了,我松了一口气。

只是需要注意一些事情。希望如果其他人也有类似的问题,这可以提供一些线索。

您的模块的文件名为 module.xml 文件配置标签应具有 XML 架构及其 xsd 位置,以验证您的 module.xml 文件结构。模式值应该是这样的

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd"
许可以下: CC-BY-SA归因
scroll top