SuperAPI AI 工具集

drupal-debugging

编程与开发

查看项目

更新于 10-16 02:11

技能介绍

用途

本技能面向 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 环境的命令示例,未提供具体版本兼容性信息,未提供收费或价格信息。