Aller au contenu
Nibiru docsv0.9.2

Structure du Projet

Une visite guidée de chaque répertoire dans un projet Nibiru.

Stable Reading time ~ 1 min Edit on GitHub
my-app/
├── core/ # Framework code (don't edit)
│ ├── a/ # Abstract classes + adapters
│ ├── c/ # Concrete classes (router, view, form types…)
│ ├── f/ # Factories (db, form)
│ ├── i/ # Interfaces
│ ├── l/ # Composer vendor (yes, in core/)
│ ├── t/ # Traits
│ └── framework.php # Main bootstrap
├── application/ # Your app
│ ├── controller/ # *Controller.php files
│ ├── model/ # Auto-generated models (from DB schema)
│ ├── module/ # Modules (the second M in MMVC)
│ │ └── users/ # each with its own MVC + plugins
│ ├── settings/
│ │ └── config/
│ │ ├── settings.<env>.ini
│ │ ├── database/ # numbered SQL migration files
│ │ └── navigation/main.json
│ └── view/
│ ├── templates/ # Smarty .tpl files
│ ├── templates_c/ # Smarty compile cache (auto)
│ ├── cache/ # HTML cache (when caching=true)
│ └── mockup/ # Static design mockups
├── public/ # CSS / JS / images / fonts (web-served)
├── nibiru # CLI binary
├── index.php # Entry point
├── composer.json
└── vhost.conf # Sample nginx vhost
  • Fichier : application/controller/<nom>Controller.php
  • Classe : Nibiru\<nom>Controller extends Nibiru\Adapter\Controller
  • Méthodes requises : pageAction(), navigationAction(). Optionnelles : toutes les méthodes <verbe>Action().
  • Fichier : application/view/templates/<nom>.tpl pour le contrôleur correspondant.
  • Sous-vues se trouvent sous application/view/templates/<nom>/<action>.tpl.
  • Partiels partagés résident dans application/view/templates/shared/.
  • Générés automatiquement sous application/model/.
  • Les noms de fichiers correspondent aux noms des tables. Chaque classe étend un adaptateur Db (MySQL\Db ou PostgreSQL\Db).
  • Dossier : application/module/<nom>/
  • Chaque module est une île MVC à part entière, avec des traits, des plugins, des interfaces et des paramètres.
  • Le Registre détecte automatiquement les paramètres *.ini situés dans le dossier settings/ de chaque module.
  • application/settings/config/database/<NNN>-<slug>.sql
  • Numérotées. Exécutez via ./nibiru -mi <env>.
  • Un fichier par changement logique — ne les compressez pas.

Ceci est intentionnel. composer.json définit vendor-dir: core/l. Le chargeur automatique du framework l’attend là-bas. Ne le déplacez pas.

Smarty doit pouvoir écrire dans templates_c/. Le cache est facultatif via la clé INI [ENGINE] caching = true. Les deux dossiers doivent être ignorés par votre .gitignore.