Was ist Nibiru?
Eine 90-Sekunden-Tour durch Nibiru — was MMVC bedeutet, was im Karton ist und für wen es gedacht ist.
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.
Was im Karton steckt
Abschnitt betitelt „Was im Karton steckt“| Routing & Dispatch | URL-Pattern + SEO-URL-Parsing, Soft-404, automatische Action-Auflösung. |
| MVC + ein zweites M | Controller, Views (Smarty), Models, plus erstklassige Module mit Traits, Plugins, Interfaces, Settings und Observer-Muster. |
| Multi-Datenbank | Native 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. |
| Pagination | URL-bewusst (/controller/action/page/N) mit Template-Helfern. |
| Auth | Session-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-fertig | Smarty 3, PHPMailer, Guzzle, Laminas Diactoros, OpenAI-Client, Elasticsearch-Client, QR-Codes, Barcodes, Blockchain-Tools. |
Was MMVC eigentlich bedeutet
Abschnitt betitelt „Was MMVC eigentlich bedeutet“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
IModuleimplementiert (und optionalSplSubjectfü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 MethodenDer Request-Lifecycle, in einem Atemzug
Abschnitt betitelt „Der Request-Lifecycle, in einem Atemzug“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.
Für wen Nibiru ist
Abschnitt betitelt „Für wen Nibiru ist“- 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 →