Как отключить модули через интерфейс администратора или через Drush?


10

В Drupal 7 можно было отключить модули через интерфейс администратора или через Drush drush pm-disable. В Drupal 8 флажки выделены серым цветом в интерфейсе администратора, и Drush не может отключить их через pm-disable? Как отключить модули в 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

Это следует задать в другом вопросе. Ответ ниже не имеет никакого отношения к теме вопроса на этом сайте.
JBetdrop

@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.