Bagaimana saya bisa mengecek jika modul diaktifkan?

20

Di Drupal 7, Anda dapat menggunakan module_exists () untuk memeriksa apakah modul diaktifkan (serta apakah ada).

Sebagai contoh,

if (module_exists('devel')) {

Bagaimana Anda dapat memeriksa apakah modul diaktifkan di Drupal 8?

Patrick Kenny
sumber

Jawaban:

33

Sama seperti Clive menyebutkan ....

layanan akan lebih baik daripada menggunakan \ Drupal (dengan asumsi itu adalah opsi dalam konteks saat ini)

Berikut adalah contoh memeriksa apakah modul diaktifkan tetapi menggunakan layanan.

$moduleHandler = \Drupal::service('module_handler');
  if ($moduleHandler->moduleExists('devel')){
     // Code Here
  }
itsdarrylnorris
sumber
2
\Drupal::moduleHandlerakhirnya hanya membuat panggilan yang setara untuk mendapatkan layanan "module_handler" (lihat dokumen moduleHandler ). Kata kunci dalam komentar Clives adalah menyuntikkan , yaitu meneruskan layanan ke konstruktor.
George
12

Seperti ini:

  if (\Drupal::moduleHandler()->moduleExists('devel')) {
Patrick Kenny
sumber
2
Tidak ada gunanya menginjeksi module_handlerlayanan akan lebih baik daripada menggunakan \Drupal(dengan asumsi itu pilihan dalam konteks saat ini)
Clive