Magento 2 自定义模块未加载
-
12-12-2019 - |
题
我在 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实例,您需要注册自定义模块,如下所示:
- 编辑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"