关于 drupal-drush
drupal-drush 是面向 Drupal 开发者的 Drush 命令参考技能,涵盖日常站点管理、代码生成与调试,也包含 DDEV 调用示例。
主要功能
- 01缓存、配置与数据库更新
- 02模块与字段管理
- 03生成模块、服务和插件
- 04用户管理与错误日志
- 05DDEV 命令及代码调试
适用场景
- 01执行 Drupal 日常维护
- 02创建模块、字段或插件
- 03检查站点错误并调试生成代码
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ edutrul/ drupal-ai --skill drupal-drush安装后在 Claude Code 中输入/drupal-drush确认已加载。
附带文件README.md
详细介绍
Drush 命令
日常必备命令
drush cr # Clear all caches
drush cex -y # Export configuration
drush cim -y # Import configuration
drush updb -y # Run database updates
drush en module_name # Enable a module
drush pmu module_name # Uninstall a module
drush ws --severity=error # Watch error logs
drush ws --severity=error --count=20 # Last 20 errors
drush php:eval "code" # Run PHP inline
drush sql:dump > dump.sql # Database dump
代码生成器
drush generate # List all generators
drush gen module # Generate module (gen is alias)
drush generate controller
drush generate form-simple
drush generate form-config
drush generate service
drush generate plugin:block
drush generate plugin:field:formatter
drush generate plugin:field:widget
drush generate plugin:field:type
drush generate event-subscriber
drush generate hook
drush generate entity:content
drush generate entity:configuration
drush generate test:unit
drush generate test:kernel
drush generate test:browser
drush generate drush:command-file
非交互式生成(--answers JSON)
# Generate module
drush generate module --answers='{
"name": "My Module",
"machine_name": "my_module",
"description": "A custom module",
"package": "Custom",
"dependencies": "",
"install_file": "no",
"libraries": "no",
"permissions": "no",
"event_subscriber": "no",
"block_plugin": "no",
"controller": "no",
"settings_form": "no"
}'
# Generate service
drush generate service --answers='{
"module": "my_module",
"service_name": "my_module.helper",
"class": "HelperService",
"services": ["entity_type.manager", "logger.factory"]
}'
字段管理
# Create field (interactive)
drush field:create
# Create field (non-interactive)
drush field:create node article \
--field-name=field_subtitle \
--field-label="Subtitle" \
--field-type=string \
--field-widget=string_textfield \
--is-required=0 \
--cardinality=1
# List fields
drush field:info node article
# Field types/widgets/formatters
drush field:types
drush field:widgets
drush field:formatters
# Delete field
drush field:delete node.article.field_subtitle
查看生成器提示
# Preview what answers are needed
drush generate module -vvv --dry-run
# Accept all defaults
drush generate module -y
通过命令行管理状态和配置
# State
drush state:get my_module.last_run
drush state:set my_module.feature_enabled 1
drush state:del my_module.last_run
# Config
drush config:get my_module.settings
drush config:set my_module.settings enabled 1
drush config:edit my_module.settings
用户管理
drush user:create testuser --mail="[email protected]" --password="password"
drush user:login # One-time login for uid 1
drush user:login --uid=2 # One-time login for uid 2
drush user:role:add editor testuser
drush user:block testuser
drush user:unblock testuser
DDEV 包装器
ddev drush cr
ddev drush cex -y
ddev drush generate module --answers='{...}'
ddev drush field:create node article
调试生成的代码
示例假定使用基于 docroot/ 的 Drupal 项目。如果项目使用 web/ 或其他文档根目录,请相应调整路径。
# Syntax check
ddev exec php -l docroot/modules/custom/my_module/src/MyClass.php
# Check service registration
ddev drush devel:services | grep my_module
# Verify class autoloaded
ddev drush php:eval "class_exists('Drupal\my_module\MyClass') ? print 'Found' : print 'Not found';"
评论
支持 Markdown