# netslim-core `netslim-core` est le socle réutilisable de la plateforme Netslim. Il contient : - le `Kernel` technique ; - les modules partageables `Identity`, `Settings`, `AuditLog`, `Notifications`, `Taxonomy` et `Media` ; - les tests d'architecture et de modules du socle. Ce dépôt est conçu pour être consommé par des projets applicatifs séparés via Composer. ## Installation depuis le dépôt Git en HTTPS ```json { "repositories": [ { "type": "vcs", "url": "https://git.netig.net/netig/netslim-core.git" } ], "require": { "netig/netslim-core": "dev-main" } } ``` ## Option locale pendant le développement Pour développer le core et une application consommatrice côte à côte, un `path` repository local reste pratique : ```json { "repositories": [ { "type": "path", "url": "../netslim-core" } ], "require": { "netig/netslim-core": "dev-main" } } ``` ## Ce que doit fournir une application consommatrice Le package ne porte pas d'application concrète. Un projet consommateur doit fournir au minimum : - son propre `config/modules.php` ; - son point d'entrée HTTP (`public/index.php`) ; - ses templates applicatifs ; - son pipeline d'assets. Si l'application active `Identity` et exécute le provisionnement initial, elle doit aussi définir `ADMIN_USERNAME`, `ADMIN_EMAIL` et `ADMIN_PASSWORD` dans son `.env`. Si l'application active `Notifications`, elle doit configurer `MAIL_HOST`, `MAIL_PORT`, `MAIL_USERNAME`, `MAIL_PASSWORD`, `MAIL_ENCRYPTION`, `MAIL_FROM` et `MAIL_FROM_NAME` pour permettre l'envoi effectif des emails transactionnels. Les templates du socle supposent en particulier : - une feuille de styles servie sous `/assets/css/main.css` pour les layouts `@Kernel` ; - si l'UI admin du module `Media` est utilisée, un script servi sous `/assets/js/media-admin.js` ; - les caches, logs, médias et la base SQLite sont toujours résolus depuis le projet consommateur (`var/`, `public/media/`, `database/`), jamais depuis le package installé dans `vendor/` ; - la destination du back-office peut être redéfinie via `ADMIN_HOME_PATH` si l'application consommatrice n'utilise pas `/admin`. ## Surface publique Le socle expose principalement : - `Netig\Netslim\Kernel\...` pour le runtime public ; - les interfaces applicatives documentées des modules partagés (`Identity`, `Settings`, `AuditLog`, `Notifications`, `Taxonomy`, `Media`) ; - les contrats publics sous `Netig\Netslim\*/Contracts/` ; - les classes `*Module` des modules partagés. La frontière détaillée entre API publique et API interne est documentée dans [`docs/PUBLIC_API.md`](docs/PUBLIC_API.md). ## Vérifications locales ```bash composer install composer qa ``` > Quand `netslim-core` est 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 explicitement `Bootstrap::create()`.