Magento 2:如何检查是否已安装模块


18

在Magento 2中,是否可以在运行时检查是否安装了模块?

在Magento 1中,我要么使用isModuleEnabledhelper方法,要么手动获取全局配置树并检查下的节点<modules/>

isModuleEnabledMagento 2中有等同功能吗?如果没有,如何获取全局配置并检查所需的模块节点?

Answers:


15

也许您在寻找这个?

lib /内部/ Magento /框架/模块/Manager.php

/**
 * Whether a module is enabled in the configuration or not
 *
 * @param string $moduleName Fully-qualified module name
 * @return boolean
 */
public function isEnabled($moduleName)
{
    return $this->_moduleList->has($moduleName);
}

在同一类中也有isOutputEnabled方法。 从2.2.0版开始

用法示例:

if (!$this->_moduleManager->isEnabled('Magento_Reports')) {

是的,这就是我想要的!
艾伦·风暴

3

使用composer的部分目标是可以确保依赖项存在,否则模块将无法安装。但是,这种“禁用”输出模式有点怪异,但更像是“快速,它坏了,将其关闭,直到我们可以正确地修复它”。

因此,启用模块的概念在m2中并不完全相同。

话虽如此,我很确定有这样一个API,但是它可能尚未被@API注解标记为public / supported。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.