Runner Selection (Symfony)
Use when
- Before the first PHP, console, composer or test command of a session.
- A command fails with a missing PHP, extension or database that the container provides.
- The project uses Docker Compose, Symfony Docker (FrankenPHP), DDEV or the host and the right prefix is unclear.
- The containers may be stopped and the commands must not silently run on the host.
Default workflow
- Run the library's runtime context CLI with
--format=markdown (or --format=env for scripts).
- Read the detected Docker type (
ddev, symfony-docker, a Compose file, or none) and whether the containers are running.
- Use the prefixed console, composer and test commands it prints, such as
docker compose exec php bin/console.
- If the containers are stopped, start them with the guidance it prints (
ddev start or docker compose up -d), then run it again.
- Reuse the same prefix for every command in the session.
Guardrails
- Never run the host
php or composer when the project expects containers.
- Do not guess the Compose service name: take it from the detected commands.
- Without a Symfony application the CLI prints nothing: say so instead of inventing a runner.
- Do not start or stop containers the task does not need.
Progressive disclosure
- Use this file for execution posture and risk controls.
- Open references when deep implementation details are needed.
Output contract
- The detected environment (Docker type, running state, test framework).
- The prefixed console, composer and test commands for this session.
References