82 lines
2.9 KiB
Markdown
82 lines
2.9 KiB
Markdown
# 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()`.
|