Zum Inhalt springen
Nibiru docsv0.9.2

Projektstruktur

Eine durchgeführte Tour jedes Verzeichnisses eines Nibiru-Projekts.

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
  • Datei: application/controller/<name>Controller.php
  • Klasse: Nibiru\<name>Controller extends Nibiru\Adapter\Controller
  • Erforderliche Methoden: pageAction(), navigationAction(). Optional: jede <verb>Action().
  • Datei: application/view/templates/<name>.tpl für den entsprechenden Controller.
  • Unteransichten befinden sich unter application/view/templates/<name>/<action>.tpl.
  • Gemeinsame Teile liegen in application/view/templates/shared/.
  • Automatisch unter application/model/ generiert.
  • Dateinamen entsprechen Tabellennamen. Jede Klasse erweitert einen Db Adapter (MySQL\Db oder PostgreSQL\Db).
  • Ordner: application/module/<name>/
  • Jedes Modul ist eine eigene MVC-Insel plus Traits, Plugins, Schnittstellen und Einstellungen.
  • Der Registry entdeckt automatisch die *.ini-Einstellungen innerhalb des settings/-Ordners jedes Moduls.
  • application/settings/config/database/<NNN>-<slug>.sql
  • Nummeriert. Führen Sie über ./nibiru -mi <env> aus.
  • Eine Datei pro logischer Änderung – vermeiden Sie die Zusammenführung.

Dies ist absichtlich. composer.json setzt vendor-dir: core/l. Der Autoloader des Frameworks erwartet es dort. Bewegen Sie es nicht.

Smarty muss in die templates_c/ schreiben können. Das Zwischenspeichern ist über den INI-Schlüssel [ENGINE] caching = true optional. Beide Ordner sollten in Ihrer .gitignore enthalten sein.