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
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 WIP: 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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant