2.2 KiB
2.2 KiB
API publique et API interne de netslim-core
Ce document définit la frontière de support du package netslim-core.
API publique
Les applications consommatrices peuvent dépendre des éléments suivants :
- le namespace
Netig\Netslim\Kernel\Runtime\...nécessaire au bootstrap, au runtime et à la découverte des modules ; - les classes
*Moduleexposées par les modules partagés (IdentityModule,SettingsModule,AuditLogModule,NotificationsModule,TaxonomyModule,MediaModule,KernelModule) ; - les interfaces applicatives explicitement exposées par les modules (
Identity\Application\*ServiceInterface,Settings\Application\SettingsServiceInterface,AuditLog\Application\AuditLogServiceInterface,Notifications\Application\NotificationServiceInterface,Taxonomy\Application\TaxonomyServiceInterface,Media\Application\MediaServiceInterface) ; - les contrats publics sous
Netig\Netslim\*/Contracts/; - les conventions documentées de
config/modules.php,public/index.phpet des chemins runtime résolus côté projet consommateur ; - les layouts et partials Twig documentés sous
@Kernel/...quand l'application choisit de les réutiliser.
API interne
Les éléments suivants doivent être considérés comme des détails d'implémentation du package :
- tout
Infrastructure/(repositories PDO, stockage local, wiring DI, maintenance post-migration) ; - tout
Application/UseCase/et les services applicatifs non documentés comme contrats ; - les entités de domaine utilisées en interne par les modules ;
- les vérifications de démarrage propres aux modules ;
- les templates Twig non documentés comme points d'intégration.
Une application consommatrice ne devrait pas dépendre directement de ces éléments internes.
Règle pratique
Quand un projet applicatif a besoin d'une capacité partagée, il doit préférer :
- un contrat public existant dans
Contracts/; - à défaut, une extension documentée du runtime ou d'un module ;
- en dernier recours, une évolution du core qui ajoute un nouveau point d'intégration public.
Éviter de se brancher directement sur des classes internes permet de garder le core petit, lisible et évolutif.