mcpField
D
drupal-drush

drupal-drush

github.com/edutrul開発7352 回インストール21 週間前に更新
リポジトリ

drupal-drush について

drupal-drushは、Drupal開発者向けのDrushコマンド参照スキルです。日常的なサイト管理、コード生成、デバッグを扱い、DDEVの実行例も含みます。

主な機能

  1. 01キャッシュ、設定、データベース更新
  2. 02モジュールとフィールドの管理
  3. 03モジュール、サービス、プラグインの生成
  4. 04ユーザー管理とエラーログ
  5. 05DDEVコマンドとコードのデバッグ

活用シーン

  1. 01Drupalの日常的な保守
  2. 02モジュール、フィールド、プラグインの作成
  3. 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

CLI から状態と設定を管理する

# 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';"

コメント