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


20

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

Например,

if (module_exists('devel')) {

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

Ответы:


33

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

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

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

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

2
\Drupal::moduleHandlerв конце концов просто делает эквивалентный вызов, чтобы получить службу "module_handler" (см. документ moduleHandler ). Ключевым словом в комментарии Clives было внедрение , то есть передача сервиса конструктору.
Джордж

12

Как это:

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

2
Ничего не стоит, что внедрение module_handlerслужбы предпочтительнее использования \Drupal(при условии, что это опция в текущем контексте)
Клайв
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.