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.