Structure du Projet
Une visite guidée de chaque répertoire dans un projet Nibiru.
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 vhostConventions notables
Section intitulée « Conventions notables »Contrôleurs
Section intitulée « Contrôleurs »- 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>.tplpour 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\DbouPostgreSQL\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
*.inisitués dans le dossiersettings/de chaque module.
Migrations
Section intitulée « Migrations »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.
Composer vendor dans core/l/
Section intitulée « Composer vendor dans core/l/ »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.
templates_c/ et cache/
Section intitulée « templates_c/ et cache/ »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.