¿Qué es Nibiru?
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.
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
Sección titulada «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
Sección titulada «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 opcionalmenteSplSubjectpara el patrón observador), - traits para comportamiento reutilizable,
- plugins para servicios sin estado inyectados en controladores,
- interfaces para contratos,
- settings como archivos
.iniautodescubiertos 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 reutilizablesEl 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.
Para quién es Nibiru
Sección titulada «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 →