Ir al contenido
Nibiru docsv0.9.2

¿Qué es Nibiru?

Un recorrido de 90 segundos por Nibiru — qué significa MMVC, qué viene en la caja y para quién es.

Stable Reading time ~ 2 min Edit on GitHub

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.

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.

Enrutamiento y dispatchAnálisis de URL + URLs SEO, 404 suave, búsqueda automática de acciones.
MVC + una segunda MControladores, Vistas (Smarty), Modelos, más Módulos de primera clase con traits, plugins, interfaces, settings y un patrón observador.
Multi-base de datosMySQL nativo, PDO, PostgreSQL vía libpq (psql/postgresql) y ODBC, todos detrás de un adaptador Db unificado.
FormulariosMás de 28 tipos de campo construidos fluidamente con Form::addInputType…() y un ayudante de layout para divs.
PaginaciónConsciente de la URL (/controller/action/page/N) con ayudantes de plantilla.
AuthBasado 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 ComposerSmarty 3, PHPMailer, Guzzle, Laminas Diactoros, cliente OpenAI, cliente Elasticsearch, códigos QR, códigos de barras, herramientas blockchain.

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.

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

Sección titulada «El ciclo de vida de la petición, en un suspiro»
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 _actionAction coincidente, y finalmente pageAction(). Si el archivo del controlador no se encuentra, Nibiru renderiza la plantilla de error configurada — un 404 suave.

  • 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 →