web-dev-qa-db-fra.com

Comment désactiver les modules via l'interface d'administration ou via Drush?

Dans Drupal 7, il était possible de désactiver les modules via l'interface d'administration ou via Drush drush pm-disable. Dans Drupal 8 les cases à cocher sont grisées dans l'interface d'administration et Drush n'est pas en mesure de les désactiver via pm-disable? Comment désactiver les modules dans Drupal 8 avec Drush ou via l'interface utilisateur d'administration? Ou ai-je besoin de la console Drupal pour de telles tâches?

(Désolé pour la confusion causée par l'utilisation erronée du mot "par programme", il faisait référence à la signification de "via la ligne de commande")

10
jbitdrop

Vous pouvez également utiliser drupal console https://drupalconsole.com/ et simplement utiliser la commande

drupal module:uninstall token

Et pour installer

drupal module:install token
2
johnatasjmo

Comme les états interface d'administration dans Drupal 8 dans la zone de message, le paradigme et le concept de comment les modules sont installés et désactivés a a changé dans Drupal 8, car il y avait beaucoup de problèmes impliqués dans la façon dont c'était avant, à cause des restes de la base de données et des données incohérences lors de la désactivation et de l'activation des modules, etc.

Par conséquent, les utilisateurs sont encouragés à plutôt désinstaller les modules plutôt que de les désactiver maintenant dans D8. Cela ne signifie pas que les modules sont partis ou supprimés de la racine Drupal, mais ils sont complètement supprimés de la base de données, y compris leur configuration.

Essayez drush pm-uninstall module-name à la place et vous verrez l'effet souhaité que vous recherchez.

Les cases à cocher sont grisées pour pouvoir toujours activer et installer des modules inactifs de la manière connue depuis D7. Mais vous ne pouvez plus les désactiver de cette façon. Et la désinstallation ne doit pas être fournie par des cases à cocher, car cela serait dangereux.

Regardez deux fois dans l'interface d'administration: vous trouverez également un nouvel onglet pour désinstaller les modules.

10
diqidoq

Comme la question demande par programme et c'est pourquoi je suis venu ici en premier lieu, je vais ajouter un extrait de code de travail à placer dans MYMODULE.install:

/**
 * Uninstall Field UI.
 */
function MYMODULE_update_8001(&$sandbox) {

  \Drupal::service('module_installer')->uninstall(['field_ui']);

}
3
leymannx