Wie kann ich überprüfen, ob ein Modul aktiviert ist?

20

In Drupal 7 können Sie mit module_exists () prüfen, ob ein Modul aktiviert ist (und ob es existiert).

Beispielsweise,

if (module_exists('devel')) {

Wie können Sie überprüfen, ob ein Modul in Drupal 8 aktiviert ist?

Patrick Kenny
quelle

Antworten:

33

Genau wie Clive erwähnen ....

Service wäre der Verwendung von \ Drupal vorzuziehen (vorausgesetzt, es ist eine Option im aktuellen Kontext)

Hier ist ein Beispiel für die Überprüfung, ob ein Modul aktiviert ist, aber einen Dienst verwendet.

$moduleHandler = \Drupal::service('module_handler');
  if ($moduleHandler->moduleExists('devel')){
     // Code Here
  }
itsdarrylnorris
quelle
2
\Drupal::moduleHandlerAm Ende wird nur ein gleichwertiger Aufruf ausgeführt, um den Dienst "module_handler" abzurufen (siehe die Dokumentation zu moduleHandler ). Das Schlüsselwort in Clives Kommentar war Injection , dh die Übergabe des Dienstes an einen Konstruktor.
George
12

So was:

  if (\Drupal::moduleHandler()->moduleExists('devel')) {
Patrick Kenny
quelle
2
Es ist nichts wert, dass das Injizieren des module_handlerDienstes der Verwendung vorzuziehen wäre \Drupal(vorausgesetzt, es ist eine Option im aktuellen Kontext)
Clive