Ir al contenido
Nibiru docsv0.9.2

Estructura del Proyecto

Un recorrido guiado por cada directorio en un proyecto de Nibiru.

Stable Reading time ~ 1 min Edit on GitHub
my-app/
├── core/ # Framework code (don't edit)
│ ├── a/ # Abstract classes + adapters
│ ├── c/ # Concrete classes (router, view, form types…)
│ ├── f/ # Factories (db, form)
│ ├── i/ # Interfaces
│ ├── l/ # Composer vendor (yes, in core/)
│ ├── t/ # Traits
│ └── framework.php # Main bootstrap
├── application/ # Your app
│ ├── controller/ # *Controller.php files
│ ├── model/ # Auto-generated models (from DB schema)
│ ├── module/ # Modules (the second M in MMVC)
│ │ └── users/ # each with its own MVC + plugins
│ ├── settings/
│ │ └── config/
│ │ ├── settings.<env>.ini
│ │ ├── database/ # numbered SQL migration files
│ │ └── navigation/main.json
│ └── view/
│ ├── templates/ # Smarty .tpl files
│ ├── templates_c/ # Smarty compile cache (auto)
│ ├── cache/ # HTML cache (when caching=true)
│ └── mockup/ # Static design mockups
├── public/ # CSS / JS / images / fonts (web-served)
├── nibiru # CLI binary
├── index.php # Entry point
├── composer.json
└── vhost.conf # Sample nginx vhost
  • Archivo: application/controller/<nombre>Controller.php
  • Clase: Nibiru\<nombre>Controller extends Nibiru\Adapter\Controller
  • Métodos requeridos: pageAction(), navigationAction(). Opcionales: cualquier <verbo>Action().
  • Archivo: application/view/templates/<nombre>.tpl para el controlador correspondiente.
  • Las subvistas van en application/view/templates/<nombre>/<acción>.tpl.
  • Los parciales compartidos se encuentran en application/view/templates/shared/.
  • Generados automáticamente en application/model/.
  • Los nombres de los archivos coinciden con los nombres de las tablas. Cada clase extiende un adaptador Db (MySQL\Db o PostgreSQL\Db).
  • Carpeta: application/module/<nombre>/
  • Cada módulo es su propia isla MVC más tratos, complementos, interfaces y configuraciones.
  • El Registro descubre automáticamente las configuraciones *.ini dentro de cada carpeta settings/ del módulo.
  • application/settings/config/database/<NNN>-<slug>.sql
  • Numeradas. Ejecutar mediante ./nibiru -mi <env>.
  • Un archivo por cambio lógico — no agrupar.

Esta es una decisión intencional. composer.json establece vendor-dir: core/l. El cargador automático del marco espera que esté ahí. No lo muevas.

Smarty debe poder escribir en templates_c/. El caché está habilitado opcionalmente a través de la clave INI [ENGINE] caching = true. Ambas carpetas deben estar en su archivo .gitignore.