Jak mogę sprawdzić, czy moduł jest włączony?


20

W Drupal 7 możesz użyć module_exists (), aby sprawdzić, czy moduł jest włączony (a także czy istnieje).

Na przykład,

if (module_exists('devel')) {

Jak sprawdzić, czy moduł jest włączony w Drupal 8?

Odpowiedzi:


33

Tak jak wspomniał Clive ....

usługa byłaby lepsza niż używanie \ Drupal (zakładając, że jest to opcja w obecnym kontekście)

Oto przykład sprawdzania, czy moduł jest włączony, ale korzysta z usługi.

$moduleHandler = \Drupal::service('module_handler');
  if ($moduleHandler->moduleExists('devel')){
     // Code Here
  }

2
\Drupal::moduleHandlerkończy się po prostu wywołaniem równoważnego wywołania usługi „module_handler” (zobacz doco moduleHandler ). Kluczowym słowem w komentarzu Clivesa było wstrzykiwanie , tj. Przekazanie usługi konstruktorowi.
George

12

Lubię to:

  if (\Drupal::moduleHandler()->moduleExists('devel')) {

2
Nie warto nic module_handlerrobić, że wstrzykiwanie usługi byłoby lepsze niż korzystanie \Drupal(zakładając, że jest to opcja w obecnym kontekście)
Clive
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.