Как я могу проверить, включен ли модуль?

20

В Drupal 7 вы можете использовать module_exists (), чтобы проверить, включен ли модуль (а также существует ли он).

Например,

if (module_exists('devel')) {

Как вы можете проверить, включен ли модуль в Drupal 8?

Патрик Кенни
источник

Ответы:

33

Так же, как упомянуть Клайва ....

Служба предпочтительнее использования \ Drupal (при условии, что это опция в текущем контексте)

Вот пример проверки, если модуль включен, но использует сервис.

$moduleHandler = \Drupal::service('module_handler');
  if ($moduleHandler->moduleExists('devel')){
     // Code Here
  }
itsdarrylnorris
источник
2
\Drupal::moduleHandlerв конце концов просто делает эквивалентный вызов, чтобы получить службу "module_handler" (см. документ moduleHandler ). Ключевым словом в комментарии Clives было внедрение , то есть передача сервиса конструктору.
Джордж
12

Как это:

  if (\Drupal::moduleHandler()->moduleExists('devel')) {
Патрик Кенни
источник
2
Ничего не стоит, что внедрение module_handlerслужбы предпочтительнее использования \Drupal(при условии, что это опция в текущем контексте)
Клайв