web-dev-qa-db-fra.com

Comment activer les modules via la configuration?

J'essaie d'activer des modules en les ajoutant à core.extension.yml fichier sans s'impliquer dans les fonctionnalités, le programme d'installation de la configuration ou des modules ou des profils similaires. Les modules sont activés mais leur configuration par défaut sous module_folder/config/install ou module_folder/config/optional ne sont pas importés. Y a-t-il un moyen de faire cela?

6
duru

Cela ne fonctionnera pas car vous dites uniquement à Drupal que votre module est installé, mais lorsque vous installez un module, il existe d'autres processus qui doivent s'exécuter pour importer les configurations et exécuter les fonctions .install .

Mais vous pouvez créer un nouveau module qui installera tous les autres modules, créer un fichier .install et l'ajouter à l'intérieur:

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

Et puis il vous suffit d'installer ce module qui installera tous les autres modules.

4
Adrian Cid Almaguer

Une alternative possible serait d'utiliser la section des dépendances de la description mymod.info.yml d'un module. L'activation du module activera les dépendances.

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

Si vous devez vous assurer que certains modules sont activés en raison de modifications de code dans un module existant, utilisez le système de mise à jour. Par exemple. ajoutez une fonction hook_update_N au fichier mymod.install qui appelle le service module.installer.

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

FYI - Essayer d'installer un module installé ne causera pas de problèmes.

Essayer de sortir du système normal en accédant à core.extensions n'est probablement pas une option maintenable à long terme.

2
CG Monroe