Comment puis-je vérifier si un module est activé?

20

Dans Drupal 7, vous pouvez utiliser module_exists () pour vérifier si un module est activé (ainsi que s'il existe).

Par exemple,

if (module_exists('devel')) {

Comment pouvez-vous vérifier si un module est activé dans Drupal 8?

Patrick Kenny
la source

Réponses:

33

Tout comme Clive mentionne ....

le service serait préférable à l'utilisation de \ Drupal (en supposant que c'est une option dans le contexte actuel)

Voici un exemple de vérification si un module est activé mais en utilisant un service.

$moduleHandler = \Drupal::service('module_handler');
  if ($moduleHandler->moduleExists('devel')){
     // Code Here
  }
itsdarrylnorris
la source
2
\Drupal::moduleHandlerfinit par faire un appel équivalent pour obtenir le service "module_handler" de toute façon (voir le doco moduleHandler ). Le mot clé dans le commentaire de Clives était l' injection , c'est-à-dire la transmission du service à un constructeur.
George
12

Comme ça:

  if (\Drupal::moduleHandler()->moduleExists('devel')) {
Patrick Kenny
la source
2
Cela ne vaut rien que d'injecter le module_handlerservice serait préférable à l'utilisation \Drupal(en supposant que c'est une option dans le contexte actuel)
Clive