On this page
Symfony developers spend a lot of time in bin/console and Doctrine. DevWorkspace Pro gives you a faster way to poke at both: a Scratchpad with the kernel booted and the entity manager ready, next to your editor, Git, GitHub and AI agents.
The app recognizes Symfony from symfony.lock and creates new apps from symfony/skeleton. You choose how they run: DDEV, Docker Compose, local PHP or a command of your own.
Core features every project gets
- Files editor with PHP IntelliSense, ⌘+P and project search
- Git Changes, GitHub issues and Actions
- Send to AI and AI sessions with resume
- Terminal tabs, Focus Pad and the ⌘+K switcher
- Uptime monitoring and Remote SSH
Extras for Symfony
| Area | What you get |
|---|---|
| Stack | Symfony badge from symfony.lock, Symfony create flow, Run card with Composer and npm scripts, PHP recipes on DDEV, Composer and npm security scan |
| Runtimes | DDEV (start, stop, services, database, PHP version, Xdebug, add-ons, logs), Docker Compose services, Local PHP |
Your first day
Create or import
Click New Project and select Symfony. In step 2, pick DDEV, Docker Compose, Local PHP or Other. The setup command is composer create-project symfony/skeleton ..
Before it runs, the app checks for php and composer (or ddev) and shows the installed version of each. If a tool is missing, you get an install link and a Check again button. To add an existing app, drop its folder on the window or click Import.
Run it your way
- Local PHP: the Run card runs
php -S localhost:8000 -t public. - Other: type your own command, for example
symfony server:start. - Docker Compose: the Services card starts, stops and streams logs for each service.
Whatever you pick, the card also lists each composer run script and each package.json script, such as your Webpack Encore or AssetMapper build.
Hand a task to an AI agent
Press ⌘+J and describe the task, for example "Add a Messenger handler that sends the order confirmation email". The agent starts in the project folder. You can run two agents on two projects at once, and each gets its own headless terminal and status chip.
Ship through GitHub
In Git › Issues, filter and search the repository's issues and click Send to AI on one. Review the result in Git › Changes, commit, push from the terminal, and follow the workflow in Git › Actions.
Symfony features
Scratchpad with Doctrine (DDEV)
Run PHP inside your booted Symfony app. $kernel, $container and $em (the Doctrine entity manager) are ready, and your .env files are loaded.
IntelliSense completes Doctrine repositories and finders, for example $em->getRepository(Post::class)->find(1)->, plus service IDs in $container->get('...'). Click the query count to see each SQL query with its bindings and time.
Logs (DDEV)
The Logs tab streams the logs of web, db and the other services in real time, with a level filter. Click an entry for its stack trace, or click Send to AI.
Recipes
DDEV projects get Rector, Prettier PHP, Laravel Pint, Addons, Cloudflare Tunnel and Additional Database. NPM Dependencies shows when the project has a package.json. Support for the PHP recipes outside DDEV is in progress.
Dependency security
Health › Security reads composer.lock and your JavaScript lockfile and lists known vulnerabilities by severity. The Health tab label shows the count in the color of the highest severity.
Xdebug (DDEV)
Turn Xdebug on and off per project, and write the VS Code configuration from the menu.
Works with the tools you already have
The app uses the PHP, Composer, Docker and DDEV installed on your computer. Local PHP works with Laravel Herd or any other PHP install. Your compose.yaml, including override files and profiles, behaves the way Docker Compose reads it. Click IDE to open the project in your editor.
Related stacks: /for/laravel and /for/php. Docs: Projects, Docker Compose, Scratchpad, Dependency Security.
FAQ
Frequently asked questions
How does the app detect a Symfony project?
It looks for symfony.lock in the project folder, and in its direct subfolders when the folder itself has no match. The project then shows a Symfony badge.
Can I query Doctrine without writing a controller?
Yes, in a DDEV project. The Scratchpad boots the kernel and gives you $kernel, $container and $em. It loads your .env files, so the database works. Results show as a table, and the summary bar counts the queries.
Does it replace the Symfony CLI?
No. The app runs the tools that you have. Local PHP runs php -S localhost:8000 -t public, and you can type any other run command, for example symfony server:start, with the Other run method.