shimkit framework symfony — sibling recipe under the existing
framework parent. Modelled on Laravel (v0.7.0); adjusted for
Symfony's conventions.
For the full machine-readable changelog, see
CHANGELOG.md.
shimkit framework symfony perms PATH [--group G] # MODERATE
shimkit framework symfony env PATH [--name N] [--env E] [--db D] # MODERATE
shimkit framework symfony cache-clear PATH [--env E]
shimkit framework symfony console -- <args>
Same shape as framework laravel, swapping in Symfony's
conventions: writable var/ (not storage/ + bootstrap/cache),
APP_SECRET hex (not APP_KEY base64), bin/console (not root
artisan).
| Aspect | Laravel (v0.7.0) | Symfony (v0.14.0) |
|---|---|---|
| Writable tree | storage/ + bootstrap/cache/ |
var/ |
| App secret | APP_KEY=base64:... (32 bytes) |
APP_SECRET=... (hex(32) = 64 chars) |
| Env file | .env (gitignored typically) |
.env.local (gitignored by convention; framework defaults stay in .env) |
| Console binary | root-level artisan |
bin/console |
| Scheduler | php artisan schedule:run every minute |
No built-in scheduler — use shimkit cron add directly |
The Symfony recipe is smaller by one command (no cron-install)
because Symfony doesn't ship a scheduler analogous to Laravel's.
.env.local is the gitignored override file; the framework-shipped
.env is preserved. Default contents:
# Symfony local environment overrides (gitignored).
# Framework defaults live in .env; secrets and per-host
# tweaks belong here.
APP_ENV=dev
APP_SECRET=<64 hex chars>
DATABASE_URL="mysql://root:shimkit-dev@127.0.0.1:13306/<dirname>?serverVersion=8.0"
# Mailer — defaults to in-memory; override in prod.
MAILER_DSN=null://nullDATABASE_URL is engine-aware:
shimkit framework symfony env --yes --db mysql ./my-app
# → mysql://root:shimkit-dev@127.0.0.1:13306/my-app?serverVersion=8.0
shimkit framework symfony env --yes --db postgres ./my-app
# → postgresql://root:shimkit-dev@127.0.0.1:15432/my-app?serverVersion=16
shimkit framework symfony env --yes --db mariadb ./my-app
# → mysql://root:shimkit-dev@127.0.0.1:13307/my-app?serverVersion=mariadb-10.11Pair with shimkit db <engine> up for an end-to-end dev stack.
# 1. Start a database
shimkit db postgres up
# 2. Create / clone the Symfony project at ./my-app
# 3. Scaffold env + fix perms
shimkit framework symfony env --yes --db postgres ./my-app
shimkit framework symfony perms --yes ./my-app
# 4. Run migrations + clear cache
shimkit framework symfony console --project ./my-app \
-- doctrine:database:create
shimkit framework symfony console --project ./my-app \
-- doctrine:migrations:migrate --no-interaction
shimkit framework symfony cache-clear --env dev ./my-app- Tests: 1044 → 1070 (+26)
- Gates: pytest, ruff, mypy strict — all green
- New optional extras: 0
uv tool upgrade shimkit
pipx upgrade shimkitLaravel users see no behavioural change. To start using the
Symfony recipe, just invoke shimkit framework symfony --help.