cursyx / skeleton
Application skeleton for Cursyx (`composer create-project`)
Requires
- php: >=8.4
- cursyx/framework: ^1.0
Requires (Dev)
- brianium/paratest: ^7.8
- filp/whoops: ^2.15
- phpunit/phpunit: ^13
Suggests
- filp/whoops: Pretty error pages in debug mode (^2.15)
This package is auto-updated.
Last update: 2026-05-05 17:27:49 UTC
README
The application template for Cursyx: a minimal MIT-licensed project you can composer create-project into a new directory. It wires cursyx/framework into a conventional layout (front controller,
config/, routes/, app/, bin/console) with sane defaults so you can run locally in minutes and evolve toward
production without fighting the framework.
Out of the box you get:
GET /— small HTML welcome page (editapp/Controllers/WelcomeController.phpandroutes/web.php).GET /api/health— JSON health probe for load balancers and monitors (routes/api.php).
Defaults lean on file cache and SQLite (see .env.example for APP_*, DB_*, cache store names, and
optional Redis). Swap stores and the database driver as your environment demands — the framework docs describe the
full matrix.
Features
- MIT application template — Your generated project code is MIT-licensed; the framework remains a dependency with its own license and release cadence.
- Conventional structure —
public/,bootstrap/,config/,routes/,app/,storage/,bin/console; ready for incremental growth without reorganizing the tree. - Runnable defaults — File cache and SQLite work out of the box;
.env.exampledocuments the key switches. - Console-first operations —
php bin/consoleis the entry point for local serving and operational commands.
Documentation
Topic guides (routing, middleware, errors, validation, Slate, i18n, package:discover, …)
live in cursyx/docs: start with README.md and DOCUMENTATION.md, then GETTING_STARTED.md for
install and first routes.
Release notes for this template: CHANGELOG.md in this repository (template and default config changes — not
framework semver, which is tracked in cursyx/framework).
Create a new project
composer create-project cursyx/skeleton my-app
cd my-app
cp .env.example .env
composer install
composer serve
Visit http://localhost:8000. Adjust .env, register providers in config/app.php, and grow routes/web.php
/ routes/api.php.
Layout (high level)
| Path | Role |
|---|---|
public/index.php |
Front controller — autoload, bootstrap, dispatch. |
bootstrap/ |
app.php (HTTP), cli.php (console) — env, config, container, middleware, routes. |
bin/console |
CLI entry; same container as HTTP without the web middleware stack. |
config/ |
PHP config files merged into config('dot.keys'). |
routes/ |
web.php, api.php — register HTTP surface. |
app/ |
App\* controllers, providers, exception handler, rules, etc. |
database/ |
Migrations and seeders (empty directories with .gitkeep in a fresh skeleton). |
resources/lang/ |
Optional translation catalogues — see cursyx/docs I18N.md. |
Composer scripts
| Script | What it runs |
|---|---|
serve |
php bin/console serve (local dev server, public/ as docroot). |
post-autoload-dump |
php bin/console package:discover — refreshes package manifest for extra.cursyx.providers. |
This template includes a minimal PHPUnit + ParaTest setup. Add extra dev tooling (PHPStan, etc.) if your application needs it.
CI: .github/workflows/ci.yml validates composer.json, runs composer install, then executes
php bin/console list as a smoke test (framework is pulled from Packagist).
Requirements
Matches cursyx/framework: PHP ≥ 8.4, intl, pdo, fileinfo — see the framework composer.json
require block.
License
MIT — see LICENSE in this repository (copyright line as maintained in the project).