Comment désactiver les modules via l'interface d'administration ou via Drush?
10
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 programmation", il faisait référence à la signification de "via la ligne de commande")
Comme l' interface d'administration dans les états Drupal 8 dans la zone de message, le paradigme et le concept de la façon dont les modules sont installés et désactivés ont changé dans Drupal 8, car il y avait beaucoup de problèmes impliqués dans la façon dont c'était avant, en raison des restes de la base de données et les incohérences de données lors de la désactivation et l'activation des modules, etc.
Par conséquent, les utilisateurs sont encouragés à désinstaller les modules plutôt qu'à 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-nameplutôt 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.
Comment faire cela par programmation en php (par exemple: dans un MODULE.install)
Guillaume Bois
La réponse ci-dessous vous explique comment désinstaller par programme les modules, pas de désactivation dans Drupal 8.
Duncanmoo
Cela devrait être posé dans une autre question. La réponse ci-dessous n'a rien à voir avec le sujet de la question sur ce site.
jbitdrop
@jbitdrop - Il y en avait jusqu'à ce que vous changiez le titre.
leymannx
3
Comme la question le demande par programme et c'est pourquoi je suis venu ici en premier lieu, je vais ajouter un extrait de code de travail à placer à l'intérieur MYMODULE.install:
/**
* Uninstall Field UI.
*/function MYMODULE_update_8001(&$sandbox){
\Drupal::service('module_installer')->uninstall(['field_ui']);}
Cela devrait être posé dans une autre question. La réponse n'a rien à voir avec le sujet de la question sur ce site.
jbitdrop
1
@jbitdrop - Après avoir changé le titre de la question, il ne semble plus correspondre, oui. Dans votre article, vous demandez toujours comment désactiver les modules par programme.
leymannx
Vous avez raison, mais c'était exactement l'inverse. Après avoir lu votre réponse, j'ai réalisé que ma question était peut-être incompréhensible (désolé, pas la langue maternelle). C'est pourquoi j'ai changé le titre pour le rendre plus clair. Mais comme vous pouvez le voir dans mon explication dans D7, j'étais après la commande Drush et des choses comme ça, pas comment préparer un module pour les routines de désinstallation. Je suis désolé d'avoir causé la confusion. Peut-être que je devrais poser la question appropriée ailleurs et déplacer votre réponse là-bas :) (PS: si par programmation est le mauvais mot, je dois aussi le remplacer dans le message)
Comme la question le demande par programme et c'est pourquoi je suis venu ici en premier lieu, je vais ajouter un extrait de code de travail à placer à l'intérieur
MYMODULE.install
:la source