Files
netslim-blog/docs/ONBOARDING.md
2026-03-20 22:16:20 +01:00

79 lines
3.9 KiB
Markdown

# Onboarding
Ce document sert de rampe d'accès au projet. Il n'essaie pas de tout expliquer : il te donne le bon ordre de lecture, les fichiers à ouvrir en premier et une première modification simple à réaliser sans te perdre.
## L'idée du projet en une minute
`netslim-blog` est une application blog concrète construite sur `netslim-core`.
Les idées à retenir sont simples :
- le code local est organisé par **domaines fonctionnels**, avec ici surtout `Post` et `Site` ;
- les modules partagés (`Kernel`, `Identity`, `Settings`, `AuditLog`, `Notifications`, `Taxonomy`, `Media`) viennent de `netslim-core` ;
- chaque domaine suit la même structure : `Application`, `Domain`, `Infrastructure`, `UI` ;
- l'application sert de cas réel pour faire vivre le socle partagé dans un projet éditorial.
## Ce qu'il faut comprendre la première heure
Si tu dois vite te repérer, concentre-toi sur ces deux flux :
- la **médiathèque** (`Media`) avec son picker intégré à l'éditeur ;
- la relation explicite `Post ↔ Media` via `data-media-id` et `post_media` ;
- le tableau de bord `/admin` et les pages `/admin/settings`, `/admin/audit-log`, `/admin/notifications`, qui montrent comment le blog intègre les modules transverses du core.
Ils donnent une bonne vision de l'état actuel du projet : modularité, ports inter-domaines, UI admin et coordination frontend/backend.
## Ordre de lecture conseillé
1. [../README.md](../README.md) pour la vue d'ensemble et le démarrage rapide
2. [ARCHITECTURE.md](ARCHITECTURE.md) pour comprendre la structure du dépôt
3. `public/index.php`, `bootstrap.php`, puis `vendor/netig/netslim-core/src/Kernel/Runtime/Bootstrap.php`, `vendor/netig/netslim-core/src/Kernel/Runtime/RuntimePaths.php`, `vendor/netig/netslim-core/src/Kernel/Runtime/DI/container.php`, `vendor/netig/netslim-core/src/Kernel/Runtime/Http/`, `vendor/netig/netslim-core/src/Kernel/Runtime/Routing/Routes.php`
4. `src/Site/` puis `src/Post/` pour suivre les modules locaux
5. `vendor/netig/netslim-core/src/Settings/`, `AuditLog/`, `Notifications/` et `Media/` pour comprendre les briques transverses démontrées par le blog
6. [FRONTEND.md](FRONTEND.md) si tu touches à Twig, SCSS ou à l'éditeur
7. [DEVELOPMENT.md](DEVELOPMENT.md) pour le workflow quotidien
## Comment lire un domaine
Parcourir un domaine dans cet ordre :
1. `UI/Http/Routes.php`
2. `UI/Http/*Controller.php`
3. `Application/`
4. `Domain/`
5. `Infrastructure/`
Ce parcours part d'une route ou d'un écran réel, puis remonte vers les cas d'usage et les implémentations.
## Première modification conseillée
Choisir une évolution **petite mais verticale** dans un domaine existant. Par exemple :
- ajuster un message ou un champ dans `/admin/settings` ;
- modifier un partial Twig partagé ;
- faire une petite évolution dans `Post` ou `Site` ;
- ajuster un style ou un comportement lié à la médiathèque.
Éviter comme première tâche :
- un nouveau domaine complet ;
- une modification transverse dans `netslim-core` sans avoir d'abord compris son impact ;
- un changement d'architecture ;
- une abstraction générique "pour préparer plus tard".
## Ce qu'il faut garder en tête
- un service applicatif sert de façade ; les workflows sensibles vivent dans des use cases dédiés ;
- un contrôleur traduit HTTP vers l'application ;
- `Infrastructure/` contient les implémentations concrètes ;
- le code transverse vient du package `netslim-core` ;
- le frontend reste simple, mais les écrans riches ont leurs scripts dédiés dans `assets/js/`, puis copiés dans `public/assets/js/` au build.
## Après la première lecture
Quand tu te sens à l'aise :
- passe à [DEVELOPMENT.md](DEVELOPMENT.md) pour le travail quotidien ;
- garde [ARCHITECTURE.md](ARCHITECTURE.md) comme document de référence avant une évolution structurelle ;
- ouvre [FRONTEND.md](FRONTEND.md) avant de toucher à l'éditeur, à la modale de médiathèque ou aux assets.