PHPackages                             velt/skeleton - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. velt/skeleton

ActiveProject[Framework](/categories/framework)

velt/skeleton
=============

Installable application skeleton for the Velt framework.

v0.1.0(yesterday)03↑2900%MITPHPPHP ^8.2

Since Jun 17Pushed yesterdayCompare

[ Source](https://github.com/Velt-PHP/veltphp-skeleton)[ Packagist](https://packagist.org/packages/velt/skeleton)[ RSS](/packages/velt-skeleton/feed)WikiDiscussions main Synced today

READMEChangelogDependencies (3)Versions (3)Used By (0)

Velt Skeleton
=============

[](#velt-skeleton)

This repository contains the application skeleton for Velt framework used for local development and testing.

Usage

- Install dependencies:

```
composer install
```

- Run tests:

```
composer test
```

- Start local server:

```
php bin/velt serve 127.0.0.1:8000
```

Configuration

- Copy `.env.example` to `.env` and edit variables as needed.
- Configuration files are under `config/` and accessible via `config('app.name')` and helpers `env('KEY', 'default')`.

Presets (guide rapide)

Le skeleton peut être initialisé avec plusieurs presets d'architecture pour accélérer la création d'un projet Velt. Chaque preset décrit une arborescence minimale et des fichiers recommandés. Les presets disponibles (MVP) :

- `monolith-feature` — structure par feature (par défaut pour applications web simples).
- `api-only` — structure légère pour API (pas de pages HTML, uniquement JSON endpoints).
- `mvc-simple` — structure classique MVC avec dossiers `Controllers`, `Models`, `Views`.

Exemples d'arborescences minimales

`monolith-feature`

```
my-project/
  features/
    Home/
      HomePage.php
      HomeController.php
  routes/
    web.php
  public/
    config/

```

`api-only`

```
my-project/
  src/
    Controllers/
  routes/
    api.php
  public/
  config/

```

`mvc-simple`

```
my-project/
  app/
    Controllers/
    Models/
    Views/
  public/
  routes/
  config/

```

Notes

- Les presets ne modifient pas les composants internes du framework (`kernel`, `http`, `ui`, etc.). Ils génèrent uniquement des fichiers et arborescences côté application.
- Le CLI et les generateurs sont conçus pour supporter `--preset`, `--dry-run` et `--force`. Le générateur doit vérifier les collisions et proposer un rollback si nécessaire.

CLI (guide rapide)

Le skeleton inclut un shim CLI minimal `bin/velt` qui offre une commande `serve`. À terme la CLI fournira des commandes de génération et d'assistance.

Commandes disponibles aujourd'hui :

```
php bin/velt help
php bin/velt serve [host:port]    # exemple: php bin/velt serve 127.0.0.1:8000
```

Commandes prévues pour la génération (exemples d'usage)

```
# Générer un nouveau projet avec preset monolith-feature
php bin/velt make:project my-project --preset=monolith-feature

# Générer une feature (controller + page + test)
php bin/velt make:feature auth

# Dry run pour vérifier les fichiers qui seraient créés
php bin/velt make:project my-project --preset=api-only --dry-run
```

Bonnes pratiques

- Toujours exécuter `--dry-run` ou vérifier le repository avant d'exécuter un générateur sur un projet existant.
- Les presets doivent être simples et explicites ; éviter de modifier des fichiers fournis par `kernel`.
- Documenter tout preset nouveau dans ce README et ajouter un test d'acceptation qui vérifie l'arborescence générée.

Velt Skeleton
=============

[](#velt-skeleton-1)

Projet applicatif minimal installe par `velt new`.

Ce repo est le point d'entree du Module 2 - Skeleton et Developer Experience. Il ne contient pas le framework entier : il assemble les packages du Module 1 (`kernel`, `http`, `ui`, `database`, `cli`) dans une application concrete, executable et testable.

Etat actuel
-----------

[](#etat-actuel)

Issue 01 - Creer le skeleton installable : implementee.

Le skeleton fournit maintenant :

- un `composer.json` de projet avec dependances Velt locales ;
- un front controller `public/index.php` ;
- un bootstrap applicatif `bootstrap/app.php` ;
- les routes `routes/web.php` et `routes/api.php` ;
- une feature `features/Home` qui rend une page Velt en HTML ;
- un binaire projet `bin/velt` ;
- un `.env.example` ;
- une base PHPUnit de fumee pour valider `/` et `/api/preview/demo`.

Installation locale
-------------------

[](#installation-locale)

Depuis ce repo :

```
composer install
cp .env.example .env
php bin/velt kernel:check
php bin/velt serve --dry-run
composer test
```

Sur Windows PowerShell :

```
composer install
Copy-Item .env.example .env
php bin/velt kernel:check
php bin/velt serve --dry-run
composer test
```

Pour lancer le serveur :

```
php bin/velt serve
```

Puis ouvrir `http://127.0.0.1:8000`.

Routes disponibles
------------------

[](#routes-disponibles)

MethodeRouteDescriptionGET`/`Rend la page d'accueil Velt en HTML via `Velt\Ui\Renderers\WebRenderer`.GET`/api/preview/demo`Retourne une erreur JSON propre quand aucune session preview n'existe.Exemple de payload preview sans session :

```
{
  "success": false,
  "error": {
    "code": "preview_session_missing",
    "message": "No preview session is available for the demo route."
  }
}
```

Structure
---------

[](#structure)

```
bootstrap/
  app.php
bin/
  velt
config/
  app.php
  database.php
  preview.php
features/
  Home/
    HomePage.php
public/
  index.php
routes/
  api.php
  web.php
tests/
  Feature/
    SkeletonSmokeTest.php

```

Comment ca marche
-----------------

[](#comment-ca-marche)

`bootstrap/app.php` charge la configuration, instancie `Velt\Kernel\Application`, enregistre les providers HTTP/UI, charge les routes, puis expose le dispatcher HTTP.

`public/index.php` capture la requete HTTP avec `Velt\Http\Request`, la passe au dispatcher, puis envoie la response.

`features/Home/HomePage.php` construit une page declarative avec `Page`, `Card`, `Text` et `Button`, puis la rend en HTML.

`bin/velt` delegue a `Velt\Cli\ApplicationFactory`, ce qui permet d'utiliser les commandes CLI officielles depuis le projet skeleton.

Objectif Module 2
-----------------

[](#objectif-module-2)

Le Module 2 transforme les composants bas niveau du Module 1 en experience developpeur concrete :

- creer un projet Velt minimal installable ;
- exposer `.env.example` et `config/*.php` sans reinventer le loader du kernel ;
- proposer des presets d'architecture simples ;
- fournir une base PHPUnit pour applications Velt ;
- aligner les generateurs CLI sur la structure du skeleton ;
- poser les standards de documentation et de contribution.

Perimetre du repo
-----------------

[](#perimetre-du-repo)

Inclus dans ce repo :

- `composer.json` du projet skeleton ;
- `public/index.php` comme front controller ;
- `bin/velt` pour les commandes projet ;
- `config/app.php`, `config/database.php`, `config/preview.php` ;
- `routes/web.php` et `routes/api.php` ;
- structure `features/` par defaut ;
- `.env.example` ;
- presets MVP documentes ;
- tests de fumee du projet genere.

Exclus de ce repo :

- implementation interne du kernel ;
- routeur HTTP complet ;
- moteur UI ;
- ORM avance ;
- systeme de preview mobile avance ;
- generateurs CLI eux-memes, sauf exemples et integration.

Sous-modules et repos
---------------------

[](#sous-modules-et-repos)

Sous-moduleRepo cibleDecision01 - Project Skeleton`Velt-PHP/veltphp-skeleton`Implementation principale02 - Architecture Presets`Velt-PHP/veltphp-skeleton` + `Velt-PHP/veltphp-cli`Presets dans le skeleton, selection via CLI03 - Config Environment`Velt-PHP/veltphp-skeleton` au MVPExtraire vers `veltphp/config` seulement si l'API devient stable04 - Testing Foundation`veltphp/testing` recommandePeut demarrer comme dossier `tests/` du skeleton avant extraction05 - Code Generators`Velt-PHP/veltphp-cli`Adapter les commandes `make:*` au skeleton06 - Documentation Standards`veltphp/docs` recommandePeut demarrer comme conventions partagees dans ce repoDefinition of Done
------------------

[](#definition-of-done)

- `velt new blog` cree un projet minimal depuis ce skeleton.
- `composer install` fonctionne avec les packages Velt locaux via `path repositories`.
- `php bin/velt serve` demarre le projet.
- La route `/` retourne une page Velt rendue en HTML.
- Une route preview JSON expose un contrat d'erreur propre si aucune session n'existe.
- Les presets `monolith-feature`, `api-only` et `mvc-simple` sont documentes.
- Les tests de base peuvent etre lances sans configuration cachee.

Workflow local attendu
----------------------

[](#workflow-local-attendu)

Tant que les packages ne sont pas publies sur Packagist, utiliser des repositories Composer de type `path` :

```
{
  "repositories": [
    { "type": "path", "url": "../veltphp-kernel/packages/kernel", "options": { "symlink": true } },
    { "type": "path", "url": "../veltphp-http", "options": { "symlink": true } },
    { "type": "path", "url": "../velt-ui", "options": { "symlink": true } },
    { "type": "path", "url": "../velt-database", "options": { "symlink": true } },
    { "type": "path", "url": "../veltphp-cli", "options": { "symlink": true } }
  ]
}
```

Verification minimale :

```
composer install
composer dump-autoload
php bin/velt kernel:check
php bin/velt serve --dry-run
composer test
```

Les chemins sont relatifs au dossier `github-repos/`, ce qui permet de travailler en symlink sur les packages locaux sans copier le code.

Labels GitHub
-------------

[](#labels-github)

Les issues Module 2 doivent utiliser les labels suivants :

- `module:2-skeleton-dx`
- `area:skeleton`, `area:cli`, `area:config`, `area:testing`, `area:docs`
- `type:feature`, `type:architecture`, `type:tests`, `type:documentation`
- `priority:p0`, `priority:p1`, `priority:p2`
- `status:ready`

Ordre de livraison
------------------

[](#ordre-de-livraison)

1. Skeleton installable.
2. Presets MVP.
3. Configuration projet.
4. Base de tests.
5. Generateurs CLI alignes.
6. Standards de documentation.

Criteres Issue 01
-----------------

[](#criteres-issue-01)

- Le skeleton peut etre clone et installe avec Composer.
- `php bin/velt serve` lance le projet via le serveur PHP local.
- La route `/` retourne une page Velt rendue en HTML.
- La route `/api/preview/demo` retourne une erreur JSON propre si aucune session n'existe.

###  Health Score

39

—

LowBetter than 85% of packages

Maintenance100

Actively maintained with recent releases

Popularity4

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity37

Early-stage or recently created project

 Bus Factor1

Top contributor holds 57.1% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

1d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/233258904?v=4)[Kaluba sierra](/maintainers/skylore300-hash)[@skylore300-hash](https://github.com/skylore300-hash)

---

Top Contributors

[![Athena-Evan01](https://avatars.githubusercontent.com/u/215157142?v=4)](https://github.com/Athena-Evan01 "Athena-Evan01 (8 commits)")[![KeranTyrinthe](https://avatars.githubusercontent.com/u/177726053?v=4)](https://github.com/KeranTyrinthe "KeranTyrinthe (3 commits)")[![skylore300-hash](https://avatars.githubusercontent.com/u/233258904?v=4)](https://github.com/skylore300-hash "skylore300-hash (3 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/velt-skeleton/health.svg)

```
[![Health](https://phpackages.com/badges/velt-skeleton/health.svg)](https://phpackages.com/packages/velt-skeleton)
```

###  Alternatives

[laravel/framework

The Laravel Framework.

34.8k532.1M19.3k](/packages/laravel-framework)[tempest/framework

The PHP framework that gets out of your way.

2.2k31.1k12](/packages/tempest-framework)[doppar/framework

The Doppar Framework

4011.2k14](/packages/doppar-framework)[lion/bundle

Lion-framework configuration and initialization package

122.3k3](/packages/lion-bundle)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
