Come posso disabilitare i moduli tramite l'interfaccia di amministrazione o tramite Drush?


10

In Drupal 7 era possibile disabilitare i moduli tramite l'interfaccia di amministrazione o tramite Drush drush pm-disable. In Drupal 8 le caselle di controllo sono disattivate nell'interfaccia di amministrazione e Drush non è in grado di disabilitarle tramite pm-disable? Come disabilitare i moduli in Drupal 8 con Drush o tramite l'interfaccia utente dell'amministratore? O ho bisogno della console Drupal per tali compiti?

(Ci scusiamo per la confusione causata dall'uso errato della parola "programmaticamente", si riferiva al significato di "tramite riga di comando")

Risposte:



10

Come l' interfaccia di amministrazione di Drupal 8 afferma nell'area dei messaggi, il paradigma e il concetto di come i moduli vengono installati e disabilitati sono cambiati in Drupal 8, poiché c'erano molti problemi nel modo in cui erano prima, a causa dei resti del database e incoerenze dei dati durante la disabilitazione e abilitazione dei moduli, ecc.

Pertanto gli utenti sono incoraggiati a disinstallare piuttosto i moduli piuttosto che disabilitarli ora in D8. Ciò non significa che i moduli siano andati o rimossi dalla radice Drupal, ma siano completamente rimossi dal database inclusa la loro configurazione.

Prova drush pm-uninstall module-nameinvece e vedrai l'effetto desiderato che stai cercando.

Le caselle di controllo sono disattivate per essere ancora in grado di abilitare e installare i moduli inattivi nel modo noto da D7. Ma non è più possibile disabilitarli in questo modo. E la disinstallazione non dovrebbe essere fornita da caselle di controllo, poiché ciò sarebbe pericoloso.

Cerca due volte nell'interfaccia di amministrazione: troverai anche una nuova scheda per disinstallare i moduli.


2
Come farlo a livello di codice in php (ad esempio: in un MODULE.install)
Guillaume Bois,

La risposta che segue spiega come disinstallare a livello di
codice i

Questo dovrebbe essere posto in un'altra domanda. La risposta di seguito non ha nulla a che fare con l'argomento della domanda su questo sito.
jbitdrop,

@jbitdrop - Lo è stato fino a quando non hai cambiato il titolo.
leymannx,

3

Poiché la domanda chiede di programmazione ed è per questo che sono venuto qui in primo luogo io aggiungo un frammento di codice di lavoro per essere collocato all'interno MYMODULE.install:

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

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

}

1
Questo dovrebbe essere posto in un'altra domanda. La risposta non ha nulla a che fare con l'argomento della domanda su questo sito.
jbitdrop,

1
@jbitdrop - Dopo aver modificato il titolo della domanda non sembra più adattarsi, sì. Nel tuo post chiedi ancora come disabilitare i moduli a livello di codice.
leymannx,

Hai ragione, ma era esattamente il contrario. Dopo aver letto la tua risposta mi sono reso conto che la mia domanda è forse incomprensibile (scusate, non madrelingua). Ecco perché ho cambiato il titolo per renderlo più chiaro. Ma come puoi vedere dalla mia spiegazione in D7, stavo seguendo il comando Drush e cose del genere, non come preparare un modulo per le routine di disinstallazione. Mi dispiace per aver causato la confusione. Forse dovrei porre di nuovo la domanda adatta da qualche altra parte e spostare la tua risposta laggiù :) (PS: se a livello di codice è la parola sbagliata, devo sostituirla anche nel post)
jbitdrop
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.