Show a complete pipeline: "Deploy to a new release directory, run composer install and cache warmup, run migrations, swap the symlink, then clear OPcache. Shared directories for uploads and var/log persist across releases."
Deployment steps: install dependencies (composer install --no-dev --optimize-autoloader), run migrations (doctrine:migrations:migrate), warm the cache (cache:warmup --env=prod), compile assets (asset-map:compile or encore/webpack), and sync static files. Zero-downtime: deploy to a new directory, run all build steps, then atomically swap the symlink. Tools: Deployer, Ansistrano, or custom scripts. Strong candidates discuss: the importance of APP_ENV=prod and APP_DEBUG=0, using real environment variables instead of .env in production, OPcache preloading, shared directories for uploads and logs across releases, and health check endpoints for load balancers.
Senior operational question. Candidates who deploy by FTPing files and clearing cache manually will cause downtime. Those who understand atomic deployments, cache warming, and shared resources deploy reliably.