Como posso verificar se um módulo está ativado?

20

No Drupal 7, você pode usar module_exists () para verificar se um módulo está ativado (e também se existe).

Por exemplo,

if (module_exists('devel')) {

Como você pode verificar se um módulo está ativado no Drupal 8?

Patrick Kenny
fonte

Respostas:

33

Assim como Clive menciona ....

seria preferível usar o serviço \ Drupal (supondo que seja uma opção no contexto atual)

Aqui está um exemplo de verificação se um módulo está ativado, mas usando um serviço.

$moduleHandler = \Drupal::service('module_handler');
  if ($moduleHandler->moduleExists('devel')){
     // Code Here
  }
itsdarrylnorris
fonte
2
\Drupal::moduleHandleracaba fazendo uma chamada equivalente para obter o serviço "module_handler" de qualquer maneira (consulte a documentação do moduleHandler ). A palavra-chave no comentário do Clives era injetável , ou seja, passando o serviço para um construtor.
George
12

Como isso:

  if (\Drupal::moduleHandler()->moduleExists('devel')) {
Patrick Kenny
fonte
2
Não vale nada que injetar o module_handlerserviço seja preferível ao uso \Drupal(supondo que seja uma opção no contexto atual)
Clive