Laravel and Symfony have shared a language and plenty of components for more than a decade. As of 29 June 2026 they share a host too: Laravel Cloud deploys Symfony applications, with the framework detected and configured automatically.
Also Read: Renew LinkedIn Access Tokens PHP in Laravel (60-Day Fix)
How detection works
When you create an application, Cloud reads your composer.json. If it finds symfony/framework-bundle, it treats the project as Symfony and uses php bin/console as the command runner instead of artisan. Laravel says no changes to your application code are needed.
Supported versions
- Symfony: 7.4 LTS and 8.x
- PHP: 8.2, 8.3, 8.4 and 8.5 (8.5 is the default for new environments)
What works out of the box
This is a fuller feature set than the JavaScript, Go and Python runtimes get:
- Doctrine with Postgres or MySQL. Attach a database and Cloud injects
DATABASE_URL, which is exactly what Doctrine expects. - Symfony Messenger backed by Cloud's managed queues, so workers autoscale and can scale to zero.
- WebSockets through the Pusher protocol (Cloud's Reverb-powered clusters).
- Laravel Valkey caching.
- R2 object storage.
- Preview environments for each pull request.
- Scheduled tasks.
Managed queues and scheduled tasks are only available to Laravel and Symfony, which makes Symfony the best-supported framework on Cloud after Laravel itself.
Suggested build and deploy commands
From the Symfony quickstart:
# Build
composer install --no-dev && php bin/console asset-map:compile
# Deploy (runs on every release)
php bin/console doctrine:migrations:migrate --no-interaction
Set at least these environment variables:
| Variable | Value |
|---|---|
APP_ENV | prod |
APP_SECRET | a securely generated random string |
One gotcha: .env.prod
If your repo defines DATABASE_URL (or other variables Cloud injects) in .env.prod, those values win over Cloud's. Take Cloud-managed variables out of .env.prod or you'll connect to the wrong database, or none at all.
Why it matters
For Symfony teams, the pitch is a managed PaaS with scale to zero, a proper queue system and per-PR previews without writing Dockerfiles or Platform.sh-style YAML. For Laravel, Symfony was the proving ground for framework detection. Next.js, Nuxt, Go and Python followed in the three months after.
Also Read: How to Create a WordPress Plugin from Scratch (2026 Guide)
FAQ
Which Symfony versions does Laravel Cloud support? Symfony 7.4 LTS and 8.x.
Does Symfony Messenger work with Laravel Cloud managed queues? Yes. Messenger is supported with managed queues.
Do I need to change my Symfony code? According to Laravel, no. Cloud detects the framework and configures the runtime itself.
Related on The Web Tier
- Laravel Cloud managed queues rebuilt: FIFO and Flex/Pro
- Laravel Cloud now deploys Python, Go and Node.js
Sources: Laravel Cloud changelog: Symfony support · Laravel Cloud quickstart (Symfony tab) · Laravel Cloud runtimes
