Wie deaktiviere ich Module in Drupal 8 in der Administrationsoberfläche oder über Drush?

10

In Drupal 7 war es möglich, Module über die Admin-Oberfläche oder über Drush zu deaktivieren drush pm-disable. In Drupal 8 sind die Kontrollkästchen in der Administrationsoberfläche ausgegraut und Drush kann sie nicht über pm-disable deaktivieren. Wie deaktiviere ich Module in Drupal 8 mit Drush oder über die Admin-Benutzeroberfläche? Oder brauche ich für solche Aufgaben eine Drupal-Konsole?

(Entschuldigen Sie die Verwirrung, die durch die falsche Verwendung des Wortes "programmatisch" verursacht wurde. Es bezog sich auf die Bedeutung von "über die Befehlszeile".)

jbitdrop
quelle

Antworten:

10

Wie das Admin - Interface in Drupal 8 Staaten im Nachrichtenbereich, das Paradigma und das Konzept der , wie Module erhält installiert und deaktiviert wird geändert in Drupal 8, da gab es in der Art und Weise beteiligten viele Probleme , wie es vorher war, weil die Datenbank left-overs und Dateninkonsistenzen beim Deaktivieren und Aktivieren von Modulen usw.

Daher wird Benutzern empfohlen, Module lieber zu deinstallieren, als sie jetzt in D8 zu deaktivieren . Dies bedeutet nicht, dass die Module aus dem Drupal-Stammverzeichnis entfernt oder entfernt wurden, sondern dass sie einschließlich ihrer Konfiguration vollständig aus der Datenbank entfernt wurden.

Versuchen Sie es drush pm-uninstall module-namestattdessen und Sie werden den gewünschten Effekt sehen, den Sie suchen.

Die Kontrollkästchen sind ausgegraut, um inaktive Module weiterhin wie in D7 bekannt aktivieren und installieren zu können. Aber Sie können sie auf diese Weise nicht mehr deaktivieren. Die Deinstallation sollte nicht durch Kontrollkästchen erfolgen, da dies zu gefährlich wäre.

Schauen Sie zweimal in der Admin-Oberfläche nach: Sie finden auch eine neue Registerkarte zum Deinstallieren von Modulen.

diqidoq
quelle
2
Wie man das programmgesteuert in PHP macht (zum Beispiel in einem MODULE.install)
Guillaume Bois
Die folgende Antwort zeigt Ihnen, wie Sie Module programmgesteuert deinstallieren können, ohne sie in Drupal 8 zu deaktivieren.
Duncanmoo
Dies sollte in einer anderen Frage gestellt werden. Die folgende Antwort hat nichts mit dem Thema der Frage auf dieser Site zu tun.
Jbitdrop
@jbitdrop - Es dauerte, bis Sie den Titel geändert haben.
Leymannx
3

Da die Frage programmgesteuert gestellt wird und ich deshalb hierher gekommen bin, füge ich ein funktionierendes Code-Snippet hinzu, das darin platziert werden soll MYMODULE.install:

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

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

}
Leymannx
quelle
1
Dies sollte in einer anderen Frage gestellt werden. Die Antwort hat nichts mit dem Thema der Frage auf dieser Site zu tun.
Jbitdrop
1
@jbitdrop - Nachdem Sie den Fragentitel geändert haben, scheint er nicht mehr zu passen, ja. In Ihrem Beitrag fragen Sie immer noch, wie Sie Module programmgesteuert deaktivieren können.
Leymannx
Sie haben Recht, aber es war genau umgekehrt. Nachdem ich Ihre Antwort gelesen hatte, stellte ich fest, dass meine Frage möglicherweise missverständlich ist (Entschuldigung, keine Muttersprache). Deshalb habe ich den Titel geändert, um ihn klarer zu machen. Aber wie Sie meiner Erklärung in D7 entnehmen können, war ich nach dem Drush-Befehl und ähnlichen Dingen und nicht wie man ein Modul für die Deinstallation von Routinen vorbereitet. Es tut mir leid, dass ich die Verwirrung verursacht habe. Vielleicht sollte ich die passende Frage noch einmal woanders stellen und deine Antwort dort hin verschieben :) (PS: Wenn programmatisch das falsche Wort ist, muss ich es auch in der Post ersetzen)
jbitdrop