| name | working-with-ddev |
| description | Use this skill when running commands in this project's DDEV local development environment. Invoke when executing PHP, Composer, Craft CLI, database operations, debugging, or any shell commands that need to run inside the DDEV containers. Also use when configuring DDEV, managing services, or troubleshooting the local environment. |
Working with DDEV in This Project
This project uses DDEV for local development. All PHP, Composer, and Craft CLI commands must be run through DDEV.
This Project's DDEV Setup
- Project name:
craft-base-install
- Type:
craftcms
- PHP: 8.4
- Web server: Apache-FPM
- Database: MySQL 8.0
- Docroot:
public/
- TLD:
local.statik.be
- URL:
https://craft-base-install.local.statik.be
- Composer: v2
- Upload dirs:
files, ../node_modules (bind-mounted, excluded from Mutagen sync)
Critical Rule
NEVER run PHP, Composer, or Craft commands directly on the host. Always prefix with ddev:
php craft migrate/all
composer require vendor/package
ddev craft migrate/all
ddev composer require vendor/package
Essential Commands
Project Lifecycle
ddev start
ddev stop
ddev restart
ddev describe
ddev launch
ddev launch -m
Craft CMS CLI
ddev craft migrate/all
ddev craft project-config/apply
ddev craft clear-caches/all
ddev craft db/restore <file>
ddev craft users/create
ddev craft install
ddev craft up
Composer
ddev composer install
ddev composer require vendor/package
ddev composer update
ddev composer dump-autoload -o
Database
ddev export-db --file=backup.sql.gz
ddev import-db --file=backup.sql.gz
ddev snapshot
ddev snapshot --name my_snapshot
ddev snapshot --list
ddev snapshot restore --latest
ddev snapshot restore <name>
Shell & Execution
ddev ssh
ddev exec <command>
ddev logs
ddev logs -s db
ddev logs -f
Debugging
ddev xdebug on
ddev xdebug off
ddev xdebug status
ddev xdebug info
Code Quality (via Composer scripts)
ddev composer check-cs
ddev composer fix-cs
ddev composer phpstan
DDEV Configuration
See ./ddev-configuration-reference.md for details on customizing DDEV.
Key config files:
.ddev/config.yaml — Main project config
.ddev/config.*.yaml — Override files (merged into main config)
.ddev/commands/ — Custom DDEV commands (host, web, db)
.ddev/web-build/Dockerfile — Customize web container image
.ddev/db-build/Dockerfile — Customize db container image
.ddev/php/ — Custom PHP ini overrides
.ddev/mysql/ — Custom MySQL config
.ddev/nginx_full/ or .ddev/apache/ — Web server config overrides
.ddev/providers/ — Hosting provider integrations (Acquia, Platform.sh, etc.)
.ddev/mutagen/mutagen.yml — Mutagen sync configuration
Common Workflows
After pulling changes from Git
ddev start
ddev composer install
ddev craft migrate/all
ddev craft project-config/apply
Or the shorthand:
ddev start
ddev composer install
ddev craft up
Before committing config changes
ddev craft project-config/write
Resetting the database
ddev snapshot
ddev import-db --file=path/to/dump.sql.gz
ddev craft migrate/all
ddev craft project-config/apply
Installing a new plugin
ddev composer require vendor/plugin-name
ddev craft plugin/install plugin-handle
Troubleshooting
ddev describe
ddev logs
ddev restart
ddev poweroff
ddev debug refresh