Zum Inhalt springen
Nibiru docsv0.9.2

Was ist Nibiru?

Eine 90-Sekunden-Tour durch Nibiru — was MMVC bedeutet, was im Karton ist und für wen es gedacht ist.

Stable Reading time ~ 2 min Edit on GitHub

Nibiru ist ein modulares MVC-PHP-Framework — MMVC — gebaut für rapides Prototyping, ohne die Disziplin eines echten Frameworks aufzugeben. Klein genug, um in den Kopf zu passen, mächtig genug, um Produktions-Apps zu tragen, wie sie auf der Showcase-Seite zu sehen sind.

Der Name nickt der babylonischen Astronomie zu: Nibiru war der Himmelsdurchgang, der Marduk, dem obersten Gott Babylons, zugeordnet wurde. Das Framework folgt der gleichen Idee — ein einziger Punkt, an dem deine Module, Controller, Views und Daten einander begegnen.

Routing & DispatchURL-Pattern + SEO-URL-Parsing, Soft-404, automatische Action-Auflösung.
MVC + ein zweites MController, Views (Smarty), Models, plus erstklassige Module mit Traits, Plugins, Interfaces, Settings und Observer-Muster.
Multi-DatenbankNative MySQL, PDO, PostgreSQL über libpq (psql/postgresql) und ODBC, alle hinter einem einheitlichen Db-Adapter.
FormsÜber 28 Feldtypen, fließend gebaut mit Form::addInputType…() und Layout-Hilfen für Divs.
PaginationURL-bewusst (/controller/action/page/N) mit Template-Helfern.
AuthSession-basiert mit AES-entschlüsselten Anmeldedaten, Login-Form vom Users-Modul.
CLI (./nibiru)Generiert Module, Controller, Plugins; führt Migrationen aus; löscht Caches; managt CMS-Seiten.
Composer-fertigSmarty 3, PHPMailer, Guzzle, Laminas Diactoros, OpenAI-Client, Elasticsearch-Client, QR-Codes, Barcodes, Blockchain-Tools.

Die meisten PHP-Frameworks geben dir Model–View–Controller. Nibiru fügt ein zweites M hinzu: Modul.

Ein Modul ist eine in sich geschlossene Einheit, die enthalten kann:

  • eine Hauptklasse, die IModule implementiert (und optional SplSubject für das Observer-Muster),
  • Traits für wiederverwendbares Verhalten,
  • Plugins für zustandslose Services, die in Controller injiziert werden,
  • Interfaces für Verträge,
  • Settings als .ini-Dateien, die vom Registry automatisch entdeckt werden.

Module fördern lose Kopplung und erlauben dir, “users”, “billing”, “shop”, “tpms” usw. in eigenen Ordnern zu halten, ohne application/controller/ zu überfüllen.

application/module/users/
├── users.php # Hauptklasse (implementiert IModule, SplSubject)
├── interfaces/ # Verträge
├── plugins/ # zustandslose Services (User, Acl…)
├── settings/ # .ini-Konfig automatisch geladen vom Registry
└── traits/ # wiederverwendbare Methoden
flowchart LR
A[index.php] --> B[core/framework.php]
B --> C[Dispatcher::run]
C --> D[Router::route]
D --> E[Auto::loader<br/>Models + Module]
E --> F[applicationController.php]
F --> G[navigationAction]
G --> H[customAction?]
H --> I[pageAction]
I --> J[Display::display<br/>Smarty-Render]

Jeder Request führt navigationAction() aus, dann (optional) die getroffene _actionAction und schließlich pageAction(). Wenn die Controller-Datei nicht gefunden wird, rendert Nibiru das konfigurierte Error-Template — ein Soft-404.

  • Hacker und Prototyper, die an diesem Wochenende eine funktionierende Web-App ausliefern wollen.
  • Solo-Gründer und kleine Teams, die echte Produktions-Apps warten, ohne das Gewicht eines Megaframeworks zu tragen.
  • PHP-neugierige Teams, die ab Tag eins PostgreSQL, MySQL und ein CLI haben wollen.

Bereit? Installiere Nibiru →