---
title: Was ist Nibiru?
description: 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](/de/showcase/projects/) 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

| | |
|---|---|
| **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

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](/de/core/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
```

## Der Request-Lifecycle, in einem Atemzug

```mermaid
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 `_action`Action und schließlich `pageAction()`. Wenn die Controller-Datei nicht gefunden wird, rendert Nibiru das konfigurierte Error-Template — ein *Soft-404*.

:::tip[Kommst du von Laravel oder Symfony?]
Du wirst dich mit Controllern, Views und Models zu Hause fühlen. Die Unterschiede:

- **Kein Service-Container** — Nibiru stützt sich auf **Singletons** (`Config`, `Router`, `Registry`, `Dispatcher`).
- **Kein Eloquent / Doctrine** — Models werden automatisch aus deinem Datenbankschema von `Model::__construct(false)` generiert.
- **Smarty, nicht Blade oder Twig** — aber das Muskelgedächtnis ist dasselbe.
:::

## 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 →](/de/start/installation/)
