如何手动/自动启用或禁用Drupal 8网站的模块?
Drupal 8模块自动化启用/禁用实现方案
- 首选命令行工具Drush实现自动化操作
Drush是Drupal官方维护的站点运维命令行工具,安装完成后执行对应命令即可快速完成模块的启用、卸载操作,全流程自动处理依赖检查、配置生成、缓存清理步骤:
启用指定模块:drush en 模块机器名 -y
卸载禁用指定模块:drush pmu 模块机器名 -y - 自定义代码中调用核心API实现
如果需要在自定义业务逻辑中嵌入模块控制功能,可以直接调用Drupal核心内置的模块安装器服务:
该API会自动触发模块安装全流程钩子,自动生成对应的配置条目,无需手动拼接序列化数据写入数据库。// 批量启用模块,数组参数可传入多个模块的机器名 \Drupal::service('module_installer')->install(['snowflakes']); // 批量卸载禁用模块 \Drupal::service('module_installer')->uninstall(['snowflakes']); - config表配置条目生成逻辑
你观测到的config表中的snowflakes.set条目,是模块安装时系统自动从模块根目录下config/install/路径下的同名YAML配置文件读取内容,序列化后存入数据库的,不需要开发者手动生成。
重要提示:禁止直接手动修改config表内容,Drupal配置体系有哈希校验和多层缓存机制,直接修改数据库容易引发配置校验失败、缓存不生效、站点配置同步功能异常等问题。
内容的提问来源于stack exchange,提问作者Vedang Wartikar
相关产品推荐
相关产品推荐

