¿Cómo deshabilito los módulos en Drupal 8 en la interfaz de administración o mediante Drush?

10

En Drupal 7 fue posible desactivar los módulos a través de la interfaz de administración o Drush drush pm-disable. En Drupal 8, las casillas de verificación están atenuadas en la interfaz de administración y Drush no puede desactivarlas a través de pm-disable? ¿Cómo deshabilito los módulos en Drupal 8 con Drush o mediante la interfaz de usuario de administrador? ¿O necesito la consola Drupal para tales tareas?

(Perdón por la confusión causada por usar la palabra "programáticamente" por error, se refería al significado de "a través de la línea de comando")

jbitdrop
fuente

Respuestas:

2

También puede usar la consola de drupal https://drupalconsole.com/ y simplemente usar el comando

drupal module:uninstall token

Y para instalar

drupal module:install token
johnatasjmo
fuente
10

Al igual que la interfaz de administración en los estados de Drupal 8 en el área de mensajes, el paradigma y el concepto de cómo se instalan y deshabilitan los módulos ha cambiado en Drupal 8, ya que había muchos problemas involucrados en la forma en que estaba antes, debido a las sobras de la base de datos e inconsistencias de datos al deshabilitar y habilitar módulos, etc.

Por lo tanto, se recomienda a los usuarios que desinstalen los módulos en lugar de deshabilitarlos ahora en D8. Esto no significa que los módulos hayan desaparecido o eliminado de la raíz de Drupal, sino que se eliminan por completo de la base de datos, incluida su configuración.

Intente en su drush pm-uninstall module-namelugar y verá el efecto deseado que busca.

Las casillas de verificación están atenuadas para poder habilitar e instalar módulos inactivos como se conoce desde D7. Pero ya no puedes desactivarlos de esta manera. Y la desinstalación no debe ser proporcionada por casillas de verificación, ya que esto sería peligroso.

Mire dos veces en la interfaz de administración: también encontrará una nueva pestaña para desinstalar módulos.

diqidoq
fuente
2
Cómo hacer eso programáticamente en php (por ejemplo: en un MÓDULO.instalar)
Guillaume Bois
La respuesta a continuación le indica cómo desinstalar módulos mediante programación, no deshabilitarlos en Drupal 8.
Duncanmoo
Esto debería hacerse en otra pregunta. La respuesta a continuación no tiene nada que ver con el tema de la pregunta en este sitio.
jbitdrop
@jbitdrop: hasta que cambiaste el título.
leymannx
3

Como la pregunta solicita mediante programación y es por eso que vine aquí en primer lugar, agregaré un fragmento de código de trabajo para colocarlo dentro MYMODULE.install:

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

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

}
leymannx
fuente
1
Esto debería hacerse en otra pregunta. La respuesta no tiene nada que ver con el tema de la pregunta en este sitio.
jbitdrop
1
@jbitdrop: después de cambiar el título de la pregunta, ya no parece encajar, sí. En su publicación aún pregunta cómo deshabilitar los módulos mediante programación.
leymannx
Tienes razón, pero fue exactamente al revés. Después de leer su respuesta, me di cuenta de que mi pregunta es quizás incomprensible (perdón, no lengua materna). Es por eso que cambié el título para hacerlo más claro. Pero como puede ver en mi explicación en D7, buscaba el comando Drush y cosas así, no cómo preparar un módulo para las rutinas de desinstalación. Lamento haber causado la confusión. Tal vez debería hacer la pregunta adecuada en otro lugar otra vez y mover su respuesta allí :) (PD: si programáticamente es la palabra incorrecta, también tengo que reemplazarla en la publicación)
jbitdrop