¿Cómo puedo verificar si un módulo está habilitado?

20

En Drupal 7, puede usar module_exists () para verificar si un módulo está habilitado (así como también si existe).

Por ejemplo,

if (module_exists('devel')) {

¿Cómo puede verificar si un módulo está habilitado en Drupal 8?

Patrick Kenny
fuente

Respuestas:

33

Al igual que Clive menciona ...

El servicio sería preferible a usar \ Drupal (suponiendo que sea una opción en el contexto actual)

Aquí hay un ejemplo de verificar si un módulo está habilitado pero usando un servicio.

$moduleHandler = \Drupal::service('module_handler');
  if ($moduleHandler->moduleExists('devel')){
     // Code Here
  }
itsdarrylnorris
fuente
2
\Drupal::moduleHandlertermina simplemente haciendo una llamada equivalente para obtener el servicio "module_handler" de todos modos (ver moduleHandler doco ). La palabra clave en el comentario de Clives fue inyectar , es decir, pasar el servicio a un constructor.
George
12

Me gusta esto:

  if (\Drupal::moduleHandler()->moduleExists('devel')) {
Patrick Kenny
fuente
2
No vale nada que inyectar el module_handlerservicio sería preferible a usar \Drupal(suponiendo que sea una opción en el contexto actual)
Clive