Skip to content

WIP: feat: add Symfony as a first-class stack#259

Draft
pjcdawkins wants to merge 10 commits intomainfrom
feat/symfony-stack
Draft

WIP: feat: add Symfony as a first-class stack#259
pjcdawkins wants to merge 10 commits intomainfrom
feat/symfony-stack

Conversation

@pjcdawkins
Copy link
Copy Markdown
Contributor

Summary

  • Adds non-interactive mode support and a discovery abstraction (from @akalipetis's feature/abstract-fs branch)
  • Adds Symfony as a first-class stack type, so detected Symfony projects get proper configuration instead of falling back to Generic or redirecting to Symfony CLI

Symfony stack configuration

When a Symfony project is detected (via symfony.lock or symfony/framework-bundle):

  • Non-interactive mode: sets the Symfony stack directly (no Symfony CLI prompt)
  • Interactive mode: preserves the existing Symfony CLI prompt; declining now sets the Symfony stack instead of Generic
  • Build hook: uses the Symfony Cloud configurator (symfony-build)
  • Deploy hook: symfony-deploy
  • Mounts: /var/cache and /var/log as tmp
  • Locations: root: public, passthru: /index.php

Reference: configuration-sampler/data/symfony-v7.2.yaml

🤖 Generated with Claude Code

Antonis Kalipetis and others added 10 commits February 6, 2025 15:08
Add Symfony to the question models and handlers so that detected
Symfony projects get proper configuration instead of falling back
to GenericStack or redirecting to Symfony CLI.

In non-interactive mode (as used by source-integration-apps), Symfony
projects now produce a config with symfony-build/symfony-deploy hooks,
/var/cache and /var/log tmp mounts, and public/ web root.

In interactive mode, the Symfony CLI prompt is preserved. If declined,
the stack is now set to Symfony instead of Generic.

Changes:
- models/stack.go: add Symfony constant, Title, RuntimeForStack (PHP)
- models/answer.go: add Symfony case in getStack()
- stack.go: set Symfony stack in both non-interactive and interactive
  decline paths
- build_steps.go: use Symfony Cloud configurator (symfony-build)
- deploy_command.go: use symfony-deploy
- mounts.go: /var/cache and /var/log as tmp mounts
- locations.go: root: public, passthru: /index.php

Closes [SIA-20: Implement Symfony configuration in platformify](https://linear.app/platformsh/issue/SIA-20/implement-symfony-configuration-in-platformify)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Keep fork's struct-based Runtime/ServiceName (loaded from registry.json)
over main's string constants. Keep fork's simplified templates without
BuildFlavor conditional. Remove version.go and platformifier_test.go
(superseded by fork's registry.go/registry.json and discovery tests).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@pjcdawkins pjcdawkins changed the title feat: add Symfony as a first-class stack Mar 23, 2026
@pjcdawkins pjcdawkins marked this pull request as draft March 23, 2026 11:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

1 participant