Symfony often lands in agencies as the “second PHP framework” after Laravel. MacFullStack treats Symfony like Laravel: project template, web/ docroot, MySQL/Redis from Stack, HTTPS via mkcert.
Create and docroot
- New project → Symfony template —
web/as the public directory (like Laravel’spublic/). - Hosting import: verify docroot on the card — repo root is wrong, use
web/. - Sync vhosts after docroot or alias changes.
Universal CMS detection: /cms. Templates: /help/project-templates.
Environment
macstack shell --install
composer install
php bin/console cache:clear
.env:DATABASE_URLfrom Stack credentials (MySQL by default; PostgreSQL — Pro).- Mailpit via Tools → Mail — point
MAILER_DSNat local SMTP. - Redis for cache/session — port from Stack, not a leftover docker-compose host.
Messenger and workers
On Pro/Teams — managed workers on the project card: messenger:consume, schedule:run. Free tier — one PHP project; see /help/pro-teams.
Symfony + API Platform + SPA
- API on
api.shop.localhost(Symfony PHP project). - React/Vite/Angular — Node proxy on a second card (/blog/angular-vite-mac).
- Less CORS pain when both sides use
*.localhostwith HTTPS.
Moving from Docker-only Symfony
DB dump → Tools → Databases, Native runtime, migrate-runtime when switching modes: /blog/perehod-s-docker-only.
Herd comparison: /blog/macfullstack-vs-herd.