Як відключити модулі через інтерфейс адміністратора або через Drush?


10

У Drupal 7 можна було відключити модулі через адміністраторський інтерфейс або через Drush drush pm-disable. У Drupal 8 прапорці відтіняються в інтерфейсі адміністратора, і Drush не може відключити їх через pm-ones? Як відключити модулі в Drupal 8 за допомогою Drush або через інтерфейс адміністратора? Або мені потрібна консоль Drupal для таких завдань?

(Вибачте за плутанину, спричинену помилковим використанням слова "програмно", маючи на увазі значення "через командний рядок")

Відповіді:


2

Ви також можете використовувати консоль drupal https://drupalconsole.com/ та просто використовувати команду

drupal module:uninstall token

І для встановлення

drupal module:install token

10

Як інтерфейс адміністратора в Drupal 8 держав в області повідомлень, парадигми та концепції , як отримати встановлені модулі та інвалідів був змінений в Drupal 8, так як там було багато проблем , які беруть участь в шляху , як це було раніше, з - за бази даних залишилося за кадром і невідповідності даних під час відключення та включення модулів тощо.

Тому користувачам рекомендується скоріше видаляти модулі, ніж вимикати їх зараз у D8. Це не означає, що модулі пішли або вилучені з кореня Drupal, але вони повністю видаляються з бази даних, включаючи їх конфігурацію.

Спробуйте drush pm-uninstall module-nameзамість цього, і ви побачите бажаний ефект, який вам потрібно.

Поставити прапорці в сірий колір, щоб все ще можна було вмикати та встановлювати неактивні модулі так, як відомо з D7. Але ви більше не можете їх відключити. І видалення не повинно надаватися прапорами, оскільки це може бути небезпечно.

Подивіться двічі в інтерфейс адміністратора: Ви також знайдете нову вкладку для видалення модулів.


2
Як це зробити програмно у php (наприклад, у MODULE.install)
Гійом Бой

Відповідь нижче розповідає, як програмно видаляти модулі, не відключати їх у Drupal 8.
Duncanmoo

Це слід задати в іншому питанні. Відповідь нижче не має нічого спільного з темою питання на цьому веб-сайті.
jbitdrop

@jbitdrop - Це було, поки ви не змінили назву.
leymannx

3

Оскільки запитання задається програмним шляхом, і саме тому я прийшов сюди, в першу чергу я додам фрагмент робочого коду, який потрібно розмістити всередині MYMODULE.install:

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

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

}

1
Це слід задати в іншому питанні. Відповідь не має нічого спільного з темою питання на цьому сайті.
jbitdrop

1
@jbitdrop - Після зміни заголовка питання, схоже, це більше не відповідає. У своєму дописі ви все ще запитуєте, як відключити модулі програмно.
leymannx

Ви маєте рацію, але це було саме навпаки. Прочитавши вашу відповідь, я зрозумів, що моє питання, можливо, незрозуміле (вибачте, не рідна мова). Тому я змінив назву, щоб було зрозуміліше. Але як ви бачите з мого пояснення в D7, я був після команди Drush і подібних речей, а не як підготувати модуль для видалення процедур. Мені шкода за те, що викликав плутанину. Можливо, я повинен ще раз задати відповідне запитання десь іншим і перенести свою відповідь туди :) (PS: Якщо програмно це неправильне слово, я повинен замінити його і на посаді)
jbitdrop
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.