mirror of
https://github.com/l0ng-ai/openidea.git
synced 2026-11-15 00:08:15 +00:00
File › New Project offers 38 generators grouped by language (Java, Spring Boot, Quarkus, Micronaut, Kotlin, Ktor, Scala, Python/Django/FastAPI/Flask, Node/Vite/Next.js/Nuxt/Angular/SvelteKit/Astro/NestJS/Express, Go, Rust, C/C++, Zig, .NET, PHP/Laravel/Symfony, Ruby/Rails, Dart/Flutter, Swift, Elixir/Phoenix, Haskell, static website, empty). Each is a declaration in generators/<id>.toml run by the new ide-scaffold crate: built-in templates, the framework's official CLI run non-interactively, or a project service zip (Spring Initializr, code.quarkus.io, Micronaut Launch) whose metadata becomes form fields. Projects are built in a staging directory and moved into place only on success. The dialog renders each form from its schema, flags missing toolchains with install hints and streams progress; created projects open trusted. New Project is also on the welcome screen and the title bar project menu. Closes #709
35 lines
895 B
TOML
35 lines
895 B
TOML
id = "symfony"
|
|
name = "Symfony"
|
|
group = "PHP"
|
|
icon = "project-symfony"
|
|
order = 2
|
|
description = "A Symfony application from composer create-project."
|
|
|
|
[[requires]]
|
|
program = "php"
|
|
min = "8.2"
|
|
hint = "Install PHP 8.2 or later: https://www.php.net/downloads"
|
|
|
|
[[requires]]
|
|
program = "composer"
|
|
hint = "Install Composer: https://getcomposer.org/download/"
|
|
|
|
[[fields]]
|
|
id = "webapp"
|
|
label = "Full web application"
|
|
type = "checkbox"
|
|
default = "true"
|
|
hint = "Adds Twig, Doctrine, forms, security and the other web packages (symfony/webapp-pack)."
|
|
|
|
[[steps]]
|
|
label = "Running composer create-project symfony/skeleton"
|
|
program = "composer"
|
|
cwd = "parent"
|
|
args = ["create-project", "symfony/skeleton", "{{name}}", "--prefer-dist", "--no-interaction"]
|
|
|
|
[[after]]
|
|
label = "Adding the web application packages"
|
|
program = "composer"
|
|
args = ["require", "webapp", "--no-interaction"]
|
|
when = { webapp = "true" }
|