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?

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
  }

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

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.