Как отключить и удалить модуль Drupal программно?
Я хочу иметь возможность отключить, а затем удалить модуль программно в моей локальной среде, а затем легко нажать этот код на prod, чтобы все обновлялось.
Я предполагаю, что это что-то с hook_update_N
. Но не знаю, с чего начать.
3 ответов
думаю, я нашел ответ! Внутри модулей .установите файл, я добавил этот код:
/**
* Disable and uninstall the module.
*/
function MODULE_update_7200() {
if( module_exists('MODULE')) {
module_disable(array('MODULE'));
drupal_uninstall_modules(array('MODULE'));
}
}
номер в функции должен отражать вашу установку drupal. Посмотрите, как их пронумеровать здесь: http://api.drupal.org/api/drupal/modules%21system%21system.api.php/function/hook_update_N/7
Drupal 8
в Drupal 8 это только один шаг.
быть помещенным внутрь MYMODULE.install
:
/**
* Uninstall Field UI.
*/
function MYMODULE_update_8001(&$sandbox) {
\Drupal::service('module_installer')->uninstall(['field_ui']);
}
в Drupal 8 вы можете использовать API конфигурации для включения и отключения модулей.
Например, если вы хотите включить модуль devel. Вы должны добавить следующий код в ядро.расширение.в формате YML
devel: 0
Если вы хотите удалить, вы должны удалить devel: 0
из ядра.расширение.в формате YML