mcpField
D
ddev-expert

ddev-expert

github.com/edutrul开发7351 次安装21 周前更新
代码仓库

关于 ddev-expert

ddev-expert 是管理 DDEV 开发环境的技能参考,提供项目、数据库、调试、Xdebug 和自定义服务的命令与配置示例,适用于使用 DDEV 的开发者,包括 Drupal 项目开发者。

主要功能

  1. 01项目生命周期命令
  2. 02DDEV 配置示例
  3. 03数据库与容器故障排查
  4. 04Mutagen 同步诊断
  5. 05Xdebug 控制与设置
  6. 06自定义服务和命令

适用场景

  1. 01启动或重启 DDEV 项目
  2. 02诊断容器和数据库问题
  3. 03检查 Mutagen 文件同步
  4. 04配置 Xdebug 或自定义服务

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/edutrul/drupal-ai --skill ddev-expert

安装后在 Claude Code 中输入/ddev-expert确认已加载。

附带文件README.md

详细介绍

DDEV 专家

常用命令

# Project
ddev start | stop | restart | poweroff | delete

# Execute
ddev drush <cmd> | ddev composer <cmd> | ddev exec <cmd> | ddev ssh

# Database
ddev mysql | ddev export-db | ddev import-db --file=dump.sql
ddev snapshot | ddev restore

# Utilities
ddev describe        # URLs and project info
ddev logs -f         # Follow logs
ddev launch          # Open in browser
ddev launch -m       # Open Mailpit UI

配置(.ddev/config.yaml)

name: my-project
type: drupal          # auto-detects version; or drupal11/drupal10
docroot: web
php_version: "8.3"
webserver_type: nginx-fpm
database:
  type: mariadb
  version: "10.11"
additional_hostnames:
  - api.my-project.ddev.site
webimage_extra_packages: [php8.3-imagick]
mutagen_enabled: true  # macOS/Windows performance

覆盖配置: .ddev/config.local.yaml(已加入 gitignore 的个人配置) PHP 覆盖配置: .ddev/php/*.ini

故障排除

ddev composer create-project 失败(“not allowed to be present”): 暂时将额外目录(.claude/、.git/)移走,运行 create-project,再移回。

端口冲突:

ddev poweroff && sudo lsof -i :80

容器问题:

ddev restart
ddev debug refresh    # Rebuild containers
ddev delete && ddev start  # Nuclear option

数据库: 主机为 db(在容器内)或 127.0.0.1:PORT(在容器外)。使用 ddev describe 检查端口。

权限: ddev exec chown -R $(id -u):$(id -g) .

Drush 中的 PHP 弃用警告 — 创建 .ddev/php/drush.ini:

[PHP]
error_reporting = 22527   ; E_ALL & ~E_DEPRECATED
display_errors = Off
log_errors = On
error_log = /tmp/php-errors.log

Docker Desktop overlay2 I/O 错误 — 普通重启并不足够:

killall -9 Docker   # then relaunch Docker Desktop

Docker 崩溃后 Mutagen 同步卡住:

ddev poweroff && ddev start
# If still stuck:
ddev stop
~/.ddev/bin/mutagen daemon stop
~/.ddev/bin/mutagen daemon start
ddev mutagen reset && ddev start
ddev mutagen status -l   # Detailed sync status
ddev mutagen monitor     # Real-time progress

调试命令:

ddev debug capabilities | ddev debug router
ddev exec env

Xdebug

ddev xdebug on | off | status

.ddev/php/xdebug.ini:

[xdebug]
xdebug.mode=debug,develop,coverage

模式:debug(单步调试)、develop(增强错误信息)、coverage、profile。 完整的 IDE 设置请参阅 README.md(VS Code / PHPStorm)。

自定义服务

添加 .ddev/docker-compose.<service>.yaml。常见模式:

services:
  redis:
    image: redis:7-alpine
    container_name: ddev-${DDEV_SITENAME}-redis
    labels:
      com.ddev.site-name: ${DDEV_SITENAME}
      com.ddev.approot: $DDEV_APPROOT
    expose:
      - "6379"

Solr、Elasticsearch、Redis 的完整配置以及 Drupal settings.php 片段请参阅 README.md。

自定义命令

创建 .ddev/commands/web/<name>(或 host/、db/):

#!/bin/bash
## Description: Full site refresh
## Usage: refresh
set -e
drush sql:drop -y && drush sql:cli < /var/www/html/reference.sql
drush config:import -y && drush updatedb -y && drush cache:rebuild

执行 chmod +x,然后运行 ddev <name>。

性能(macOS/Windows)

ddev config global --mutagen-enabled   # Enable globally
ddev mutagen status | sync | reset

NFS、tmpfs 和文件同步排除模式请参阅 README.md。

评论

支持 Markdown