Magento 2: Comment vérifier si un module est installé


18

Dans Magento 2, est-il possible de vérifier si un module est installé au moment de l'exécution?

Dans Magento 1, j'utiliserais soit la isModuleEnabledméthode d'assistance, soit je récupérerais manuellement l'arborescence de configuration globale et vérifierais les nœuds sous <modules/>.

Y a-t-il un isModuleEnabledéquivalent dans Magento 2? Sinon, comment puis-je récupérer la configuration globale et vérifier les nœuds de module que je veux?

Réponses:


15

Peut-être cherchez-vous cela?

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);
}

Il existe également la méthode isOutputEnabled dans la même classe. déprécié depuis v. 2.2.0

Exemple d'utilisation:

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

Ouais, c'est ce que je cherchais!
Alan Storm

3

Une partie du but de l'utilisation de composer est que vous pouvez vous assurer que les dépendances existent, sinon le module ne sera pas installé. Cependant, il y a ce mode de sortie "désactiver" qui est un peu bizarre, mais ressemble plus à "rapide, il est cassé, éteignez-le jusqu'à ce que nous puissions le réparer correctement".

Le concept de module activé n'est donc pas tout à fait le même en m2.

Cela dit, je suis sûr qu'il existe une telle API, mais elle n'est peut-être pas encore marquée comme publique / prise en charge avec l'annotation @ API

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.