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?

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
  }

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')) {

2
Tidak ada gunanya menginjeksi module_handlerlayanan akan lebih baik daripada menggunakan \Drupal(dengan asumsi itu pilihan dalam konteks saat ini)
Clive
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.