Magento 2: Cara Memeriksa apakah Modul Terpasang

18

Di Magento 2, apakah mungkin untuk memeriksa apakah modul terpasang saat runtime?

Di Magento 1 saya akan menggunakan isModuleEnabledmetode helper, atau secara manual mengambil pohon konfigurasi global dan memeriksa node di bawah <modules/>.

Apakah ada yang isModuleEnabledsetara di Magento 2? Jika tidak, bagaimana saya bisa mengambil konfigurasi global dan memeriksa node modul yang saya inginkan?

Alan Storm
sumber

Jawaban:

15

Mungkin Anda mencari ini?

lib / internal / Magento / Framework / Module / Manager.php

/**
 * Whether a module is enabled in the configuration or not
 *
 * @param string $moduleName Fully-qualified module name
 * @return boolean
 */
public function isEnabled($moduleName)
{
    return $this->_moduleList->has($moduleName);
}

Juga ada metode isOutputEnabled di kelas yang sama. diturunkan sejak v. 2.2.0

Contoh penggunaan:

if (!$this->_moduleManager->isEnabled('Magento_Reports')) {
zhartaunik
sumber
Yup, itulah yang saya cari!
Alan Storm
3

Bagian dari tujuan menggunakan komposer adalah Anda dapat memastikan dependensi ada, atau modul tidak akan menginstal. Namun ada mode keluaran "nonaktifkan" yang sedikit aneh, tetapi lebih seperti "cepat, rusak, matikan sampai kita dapat memperbaikinya dengan benar".

Jadi konsep modul yang diaktifkan tidak sama dengan m2.

Karena itu, saya cukup yakin ada API seperti itu, tetapi mungkin belum ditandai sebagai publik / didukung dengan penjelasan @ API.

Alan Kent
sumber