用途
本技能面向 Drupal 开发与调试场景,提供一套系统化的调试技术参考,帮助开发者定位和解决 Drupal 项目中的常见问题,包括日志查看、PHP 内联调试、Twig 模板调试、缓存问题、服务容器问题、模块与钩子问题以及 XDebug 配置。
主要能力
Drush 日志查看
使用 ddev drush ws 命令查看 watchdog 日志,支持按严重级别、条目数量、日志类型过滤。例如查看所有错误、最近 20 条错误、所有日志级别、特定类型(如 php)的日志。
PHP 内联调试
通过 ddev drush php:eval 在 Drupal 上下文中执行 PHP 代码,可用于:查看配置原始数据、检查服务是否存在、检查类是否可自动加载、检查实体内容。
Twig 调试
在 sites/default/services.yml 中启用 Twig 调试配置(debug、auto_reload、cache),然后在模板中使用 dump() 输出变量内容。HTML 源码中的注释会显示模板建议,标明当前使用的模板文件。
Devel 模块
通过 Composer 安装 Devel 模块并启用,提供 dpm()、ksm()、dvm() 等调试函数,以及 Twig 中的 devel_dump()。
缓存调试
使用 ddev drush cr 清除所有缓存,或仅重建主题注册表。通过响应头中的 X-Drupal-Cache: HIT 检查页面缓存命中情况,使用 ddev drush state:get 检查维护模式等状态。
服务容器调试
使用 ddev drush devel:services 列出服务,支持按模式过滤。通过 \Drupal::getContainer()->getDefinition() 检查容器定义。
模块与钩子调试
使用 ddev drush pm:list --status=enabled 列出已启用模块,通过 \Drupal::moduleHandler()->getImplementations() 检查哪些模块实现了某个钩子,使用 ddev drush pm:info 查看模块信息。
常见问题与解决方案
提供问题与解决方案对照表,涵盖类未找到、服务未找到、模板未使用、钩子未触发、配置未保存、迁移失败等常见问题。
XDebug 与 DDEV
使用 ddev xdebug on/off/status 启用、禁用或检查 XDebug 状态,并配置 IDE(如 PHPStorm)监听 9003 端口。
使用方式
所有命令均以 ddev drush 或 ddev xdebug 形式给出,适用于 DDEV 本地开发环境。Twig 调试需修改 services.yml 配置文件。Devel 模块需通过 Composer 安装并启用。
适用场景
适用于 Drupal 开发者在本地开发环境中进行问题排查、日志分析、模板调试、服务与钩子检查、缓存问题定位以及 XDebug 配置。
限制
资料未提供关于生产环境调试的说明,未提供非 DDEV 环境的命令示例,未提供具体版本兼容性信息,未提供收费或价格信息。