---
title: ¿Qué es Nibiru?
description: Un recorrido de 90 segundos por Nibiru — qué significa MMVC, qué viene en la caja y para quién es.
---

**Nibiru** es un framework PHP MVC modular — *MMVC* — construido para **prototipado rápido** sin renunciar a la disciplina de un framework real. Lo bastante pequeño para caber en tu cabeza, y lo bastante potente para sostener apps de producción como las que aparecen en la [página de casos de uso](/es/showcase/projects/).

El nombre es un guiño a la astronomía babilónica: **Nibiru** era el punto de cruce celestial asociado a Marduk, el dios principal de Babilonia. El framework funciona con la misma idea — un único punto a través del cual tus módulos, controladores, vistas y datos se cruzan.

## Qué viene en la caja

| | |
|---|---|
| **Enrutamiento y dispatch** | Análisis de URL + URLs SEO, 404 suave, búsqueda automática de acciones. |
| **MVC + una segunda M** | Controladores, Vistas (Smarty), Modelos, más **Módulos** de primera clase con traits, plugins, interfaces, settings y un patrón observador. |
| **Multi-base de datos** | MySQL nativo, PDO, PostgreSQL vía libpq (`psql`/`postgresql`) y ODBC, todos detrás de un adaptador `Db` unificado. |
| **Formularios** | Más de 28 tipos de campo construidos fluidamente con `Form::addInputType…()` y un ayudante de layout para divs. |
| **Paginación** | Consciente de la URL (`/controller/action/page/N`) con ayudantes de plantilla. |
| **Auth** | Basado en sesión con credenciales descifradas con AES, formulario de login pre-construido por el módulo `Users`. |
| **CLI (`./nibiru`)** | Crea módulos, controladores, plugins; ejecuta migraciones; limpia cachés; gestiona páginas CMS. |
| **Listo para Composer** | Smarty 3, PHPMailer, Guzzle, Laminas Diactoros, cliente OpenAI, cliente Elasticsearch, códigos QR, códigos de barras, herramientas blockchain. |

## Qué significa realmente MMVC

La mayoría de frameworks PHP te dan Modelo–Vista–Controlador. Nibiru añade una segunda **M**: **Módulo**.

Un módulo es una unidad autocontenida que puede contener:

- una clase principal que implementa `IModule` (y opcionalmente `SplSubject` para el patrón observador),
- **traits** para comportamiento reutilizable,
- **plugins** para servicios sin estado inyectados en controladores,
- **interfaces** para contratos,
- **settings** como archivos `.ini` autodescubiertos por el [Registro](/es/core/registry/).

Los módulos promueven el acoplamiento débil y te permiten mantener "users", "billing", "shop", "tpms" etc. en sus propias carpetas sin contaminar `application/controller/`.

```
application/module/users/
  ├── users.php             # clase principal (implementa IModule, SplSubject)
  ├── interfaces/           # contratos
  ├── plugins/              # servicios sin estado (User, Acl…)
  ├── settings/             # config .ini autocargada por el Registro
  └── traits/               # métodos reutilizables
```

## El ciclo de vida de la petición, en un suspiro

```mermaid
flowchart LR
  A[index.php] --> B[core/framework.php]
  B --> C[Dispatcher::run]
  C --> D[Router::route]
  D --> E[Auto::loader<br/>modelos + módulos]
  E --> F[applicationController.php]
  F --> G[navigationAction]
  G --> H[customAction?]
  H --> I[pageAction]
  I --> J[Display::display<br/>render Smarty]
```

Cada petición ejecuta `navigationAction()`, luego (opcionalmente) el `_action`Action coincidente, y finalmente `pageAction()`. Si el archivo del controlador no se encuentra, Nibiru renderiza la plantilla de error configurada — un *404 suave*.

:::tip[¿Vienes de Laravel o Symfony?]
Te sentirás como en casa con Controladores, Vistas y Modelos. Las diferencias:

- **Sin contenedor de servicios** — Nibiru se apoya en **singletons** (`Config`, `Router`, `Registry`, `Dispatcher`).
- **Sin Eloquent / Doctrine** — los Modelos se autogeneran desde el esquema de la base de datos por `Model::__construct(false)`.
- **Smarty, no Blade o Twig** — pero la memoria muscular es la misma.
:::

## Para quién es Nibiru

- **Hackers y prototipadores** que quieren publicar una app web funcional este fin de semana.
- **Fundadores en solitario y pequeños equipos** manteniendo apps de producción reales sin cargar con el peso de un megaframework.
- **Equipos curiosos por PHP** que quieren PostgreSQL, MySQL y una CLI desde el primer día.

¿Listo? [Instala Nibiru →](/es/start/installation/)
