2.9 KiB
2.9 KiB
Architecture de netslim-core
netslim-core fournit un noyau technique et des modules réutilisables pour plusieurs applications.
Contenu du package
src/Kernel/: bootstrap, runtime, container DI, routing, migrations, Twig, checks de démarrage.src/Identity/: identité, authentification, comptes, autorisation et reset de mot de passe.src/Settings/: paramètres applicatifs clé / valeur typés.src/AuditLog/: journalisation des actions transverses.src/Notifications/: envoi et suivi des emails transactionnels.src/Taxonomy/: taxonomie réutilisable et contrats publics associés.src/Media/: médiathèque partagée et contrats publics associés.
Principes
- un seul runtime applicatif par projet consommateur ;
- les projets consommateurs possèdent leurs templates, assets, points d’entrée HTTP et leurs modules métier propres ;
- tous les chemins runtime persistants (logs, cache, base SQLite, médias) sont résolus depuis le projet consommateur ;
- les dépendances inter-modules passent par des contrats publics minimaux ;
- le noyau ne connaît pas le métier applicatif des projets consommateurs ;
- les exigences d'environnement métier (par exemple le provisionnement admin d'
Identity) restent portées par les modules concernés, pas par le bootstrap du noyau.
Surface publique et frontière package / application
Le package expose comme points d'intégration :
Netig\Netslim\Kernel\Runtime\...pour le bootstrap et le runtime ;- les interfaces applicatives publiques des modules partagés ;
- les contrats publics sous
*/Contracts/; - les classes
*Module.
Les implémentations Infrastructure/, les repositories PDO, les détails de wiring et les templates internes doivent être considérés comme des détails d'implémentation. Voir aussi docs/PUBLIC_API.md.
Responsabilités d'une application consommatrice
Une application qui consomme netslim-core doit fournir :
- un manifeste de modules (
config/modules.php) ; - un point d'entrée HTTP ;
- les templates réellement applicatifs ;
- les assets attendus par les layouts et écrans qu'elle utilise.
Contrats implicites actuels côté UI :
@Kernel/layout.twigattend/assets/css/main.css;- l'écran admin de
Mediaattend/assets/js/media-admin.jscôté projet consommateur ; Identityne suppose pas la présence d'un module éditorial : la destination back-office se règle viaADMIN_HOME_PATH(défaut :/admin).
Contraintes d'environnement côté modules :
IdentityrequiertADMIN_*uniquement si le projet exécute le provisionnement initial du compte administrateur ;Notificationsrequiert les variablesMAIL_*seulement si l'application active l'envoi réel d'emails transactionnels.
Quand
netslim-coreest installé via Composer, les chemins runtime détectent automatiquement la racine du projet consommateur pour les scripts CLI et les suites de tests qui n'appellent pas explicitementBootstrap::create().