# 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.