Magento 2: come verificare se un modulo è installato


18

In Magento 2, è possibile verificare se un modulo è installato in fase di esecuzione?

In Magento 1 utilizzerei il isModuleEnabledmetodo helper o recupererei manualmente l'albero di configurazione globale e controllerei i nodi in <modules/>.

C'è un isModuleEnabled equivalente in Magento 2? In caso contrario, come posso ottenere la configurazione globale e verificare i nodi del modulo che desidero?

Risposte:


15

Forse lo stai cercando?

lib / interno / Magento / quadro / modulo / 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);
}

Inoltre c'è un metodo isOutputEnabled nella stessa classe. deprecato dalla v. 2.2.0

Esempio di utilizzo:

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

Sì, è quello che stavo cercando!
Alan Storm,

3

Parte dell'obiettivo dell'utilizzo del compositore è assicurarsi che esistano dipendenze, altrimenti il ​​modulo non verrà installato. Tuttavia, questa modalità di output "disabilita" è un po 'strana, ma è più simile a "veloce, è rotta, spegnila fino a quando non riusciamo a risolverla correttamente".

Quindi il concetto di modulo abilitato non è esattamente lo stesso in m2.

Detto questo, sono abbastanza sicuro che esista una tale API, ma potrebbe non essere ancora contrassegnata come pubblica / supportata con l'annotazione @ API

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.