Magento 2: Як перевірити, чи встановлений модуль


18

Чи можливо в Magento 2 перевірити, чи встановлений модуль під час виконання?

У Magento 1 я або використовую isModuleEnabledhelper метод, або вручну дістаю глобальне дерево конфігурації та перевіряю вузли під <modules/>.

Чи є isModuleEnabledеквівалент у Magento 2? Якщо ні, як я можу схопити глобальну конфігурацію та перевірити потрібні вузли модуля?

Відповіді:


15

Можливо, ви цього шукаєте?

lib / Internal / Magento / Framework / Module / 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

Частою метою використання композитора є те, щоб переконатися, що існують залежності, інакше модуль не встановиться. Однак є такий режим "відключення" виходу, який трохи дивний, але більше нагадує "швидкий, він порушений, вимкніть його, поки ми не зможемо його правильно виправити".

Тож концепція включеного модуля не зовсім однакова в м2.

Сказавши це, я впевнений, що існує такий API, але він ще не може бути позначений як загальнодоступний / підтримуваний анотацією @ API

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.