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?

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
  }

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')) {

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
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.