it-swarm.dev

Bagaimana cara mengaktifkan modul melalui konfigurasi?

Saya mencoba mengaktifkan modul dengan menambahkannya ke core.extension.yml file tanpa terlibat dengan Fitur, Penginstal Konfigurasi, atau modul atau profil serupa. Modul diaktifkan tetapi konfigurasi standarnya di bawah module_folder/config/install atau module_folder/config/optional tidak diimpor. Apakah ada cara untuk melakukan ini?

6
duru

Ini tidak akan berfungsi karena Anda hanya mengatakan untuk Drupal bahwa modul Anda sudah diinstal, tetapi ketika Anda menginstal modul ada proses lain yang perlu dijalankan untuk mengimpor konfigurasi dan menjalankan fungsi .install .

Tetapi Anda dapat membuat modul baru yang akan menginstal semua modul lainnya, membuat file .install dan menambahkannya di dalam:

/**
 * Implements hook_install().
 */
function MY_MODULE_install() {
  $modules_list = [
    'nbsp',
    'typogrify',
    'other_module',
  ];
  \Drupal::service('module_installer')->install($modules_list);
  drupal_flush_all_caches();
}

Dan kemudian Anda hanya perlu menginstal modul ini yang akan menginstal semua modul lainnya.

4

Alternatif yang mungkin adalah menggunakan bagian dependensi dari deskripsi mymod.info.yml modul. Mengaktifkan modul akan memungkinkan dependensi.

name: My Module
description: Provides something great
core: 8.x
type: module
dependencies:
  - views

Jika Anda perlu memastikan bahwa modul tertentu diaktifkan karena perubahan kode pada modul yang ada, maka gunakan sistem pembaruan. Misalnya. tambahkan fungsi hook_update_N ke file mymod.install yang memanggil layanan module.installer.

/**
 * Install file module.
 */
function mymod_update_8001() {
  \Drupal::service('module_installer')->install(['file']);
}

FYI - Mencoba memasang modul yang dipasang tidak akan menimbulkan masalah.

Mencoba keluar dari sistem normal dengan mengakses core.extensions mungkin bukan pilihan jangka panjang yang bisa dipertahankan.

2
CG Monroe