Jak wyłączyć moduły za pomocą interfejsu administratora lub Drush?

10

W Drupal 7 możliwe było wyłączenie modułów za pośrednictwem interfejsu administratora lub Drusha drush pm-disable. W Drupal 8 pola wyboru są zaznaczone na szaro w interfejsie administratora, a Drush nie jest w stanie ich wyłączyć przez pm-disable? Jak wyłączyć moduły w Drupal 8 za pomocą Drush lub poprzez interfejs użytkownika? A może potrzebuję konsoli Drupal do takich zadań?

(Przepraszam za zamieszanie spowodowane błędnym użyciem słowa „programowo”, odnosiło się ono do znaczenia „za pośrednictwem wiersza polecenia”)

jbitdrop
źródło

Odpowiedzi:

2

Możesz także użyć konsoli drupal https://drupalconsole.com/ i po prostu użyć polecenia

drupal module:uninstall token

I do instalacji

drupal module:install token
johnatasjmo
źródło
10

Podobnie jak w przypadku interfejsu administratora w Drupal 8 państw w obszarze komunikatów, paradygmatu i pojęcia jak moduły instalowane i niepełnosprawnych został zmieniony w Drupal 8, ponieważ było wiele problemów zaangażowane w sposób, jak to było wcześniej, ponieważ bazy danych resztki żywności oraz niespójności danych podczas wyłączania i włączania modułów itp.

Dlatego zachęca się użytkowników do raczej odinstalowywania modułów niż wyłączania ich teraz w D8. Nie oznacza to, że moduły zniknęły lub zostały usunięte z katalogu głównego Drupal, ale zostały całkowicie usunięte z bazy danych, łącznie z ich konfiguracją.

Spróbuj drush pm-uninstall module-namezamiast tego, a zobaczysz pożądany efekt, którego szukasz.

Pola wyboru są wyszarzone, aby nadal móc włączać i instalować nieaktywne moduły w sposób znany z D7. Ale nie możesz ich już dłużej wyłączać. A odinstalowanie nie powinno być zapewniane przez pola wyboru, ponieważ byłoby to niebezpieczne.

Spójrz dwa razy w interfejsie administratora: znajdziesz także nową kartę do odinstalowywania modułów.

diqidoq
źródło
2
Jak to zrobić programowo w php (na przykład: w MODULE.install)
Guillaume Bois
Odpowiedź poniżej pokazuje, jak programowo odinstalować moduły, bez wyłączania w Drupal 8.
Duncanmoo,
To powinno być zadane w innym pytaniu. Poniższa odpowiedź nie ma nic wspólnego z tematem pytania na tej stronie.
jbitdrop
@jbitdrop - Tak było, dopóki nie zmieniłeś tytułu.
leymannx
3

Ponieważ pytanie dotyczy programowo i dlatego przybyłem tutaj w pierwszej kolejności, dodam działający fragment kodu, który należy umieścić w nim MYMODULE.install:

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

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

}
leymannx
źródło
1
To powinno być zadane w innym pytaniu. Odpowiedź nie ma nic wspólnego z tematem pytania na tej stronie.
jbitdrop
1
@jbitdrop - Po zmianie tytułu pytania wydaje się, że już nie pasuje, tak. W swoim poście wciąż pytasz, jak programowo wyłączyć moduły.
leymannx,
Masz rację, ale było dokładnie na odwrót. Po przeczytaniu twojej odpowiedzi zdałem sobie sprawę, że moje pytanie może być niezrozumiałe (przepraszam, nie język ojczysty). Dlatego zmieniłem tytuł, aby był bardziej przejrzysty. Ale jak widać z mojego wyjaśnienia w D7, szukałem polecenia Drush i tego typu rzeczy, a nie tego, jak przygotować moduł do procedur odinstalowywania. Przepraszam, że spowodowałem zamieszanie. Może powinienem ponownie zadać odpowiednie pytanie gdzieś indziej i przenieść tam swoją odpowiedź :) (PS: Jeśli programowo jest niewłaściwe słowo, muszę go również zamienić w poście)
jbitdrop