Como desabilito os módulos no Drupal 8 na interface de administração ou via Drush?


10

No Drupal 7, foi possível desativar os módulos via interface de administração ou via Drush drush pm-disable. No Drupal 8, as caixas de seleção estão acinzentadas na interface do administrador e o Drush não pode desativá-las via pm-disable? Como desabilito os módulos no Drupal 8 com Drush ou via UI de administrador? Ou preciso do console do Drupal para essas tarefas?

(Desculpe pela confusão causada pelo uso incorreto da palavra "programaticamente", estava se referindo ao significado de "via linha de comando")

Respostas:



10

Como a interface de administração em Drupal 8 estados na área de mensagem, o paradigma eo conceito de como os módulos são instalados e deficientes tem mudado em Drupal 8, uma vez que havia muitos problemas envolvidos na maneira como era antes, por causa de Banco de Dados-overs e inconsistências de dados ao desativar e ativar módulos, etc.

Portanto, os usuários são encorajados a desinstalar os módulos, em vez de desativá-los agora no D8. Isso não significa que os módulos foram removidos ou removidos da raiz do Drupal, mas foram completamente removidos do banco de dados, incluindo sua configuração.

Tente em drush pm-uninstall module-namevez disso e você verá o efeito desejado que está buscando.

As caixas de seleção estão acinzentadas para que ainda seja possível ativar e instalar módulos inativos da maneira conhecida no D7. Mas você não pode mais desativá-los dessa maneira. E a desinstalação não deve ser fornecida por caixas de seleção, pois isso seria perigoso.

Procure duas vezes na interface de administração: Você encontrará uma nova guia para desinstalar os módulos também.


2
Como fazer isso por meio de programação em PHP (por ex: em um MODULE.install)
Guillaume Bois

A resposta abaixo mostra como desinstalar módulos de forma programática, sem desabilitar o Drupal 8.
Duncanmoo

Isso deve ser feito em outra pergunta. A resposta abaixo não tem nada a ver com o tópico da pergunta neste site.
jbitdrop

@jbitdrop - Até você mudar o título.
Leymannx # 23/18

3

Como a pergunta solicita programaticamente e é por isso que vim aqui, em primeiro lugar, adicionarei um trecho de código de trabalho a ser colocado dentro MYMODULE.install:

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

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

}

1
Isso deve ser feito em outra pergunta. A resposta não tem nada a ver com o tópico da pergunta neste site.
jbitdrop

1
@jbitdrop - Depois de alterar o título da pergunta, ela parece não se encaixar mais, sim. Na sua postagem, você ainda pergunta como desativar os módulos programaticamente.
leymannx

Você está certo, mas foi exatamente o contrário. Depois de ler sua resposta, percebi que minha pergunta talvez seja incompreensível (desculpe, não a língua nativa). Por isso mudei o título para torná-lo mais claro. Mas como você pode ver na minha explicação no D7, eu estava atrás do comando Drush e coisas assim, não como preparar um módulo para rotinas de desinstalação. Sinto muito por causar a confusão. Talvez eu deveria fazer a pergunta montagem em outro lugar novamente e mover a sua resposta lá :) (PS: Se programaticamente é a palavra errada, eu tenho que substituí-lo no cargo também)
jbitdrop
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.