NexGestion utiliza un sistema de Descubrimiento Dinámico. El Core no conoce la lógica de su módulo hasta que lee su manifiesto. Esto permite una arquitectura desacoplada y escalable.
Jerarquía del Módulo
modules/<slug>/
├── manifest.json # Definición de rutas, métodos y permisos
├── actions/ # Scripts de procesamiento (Lógica de servidor)
├── views/ # Interfaces de usuario (HTML/PHP)
├── mounts/ # Fragmentos para inyección en el Core
└── db/ # SQL Idempotente
├── install.mysql.sql
├── install.sqlite.sql
├── uninstall.mysql.sql
└── uninstall.sqlite.sql
02. El Manifiesto Técnica
Manifest.json y Permisos
Los permisos siguen el formato vista.permiso. Esto permite que el sistema de roles del core gestione quién puede ejecutar cada acción.
{
"slug": "mi_modulo",
"views": [
{
"id": "panel_mi_modulo",
"file": "main.php",
"permissions": ["ver", "editar"]
}
],
"actions": [
{
"id": "save_data",
"view": "panel_mi_modulo",
"file": "save.php",
"permission": "panel_mi_modulo.editar",
"methods": ["POST"]
}
]
}
03. Implementación de Acciones
Acciones y Base de Datos
Las acciones deben ser seguras y devolver siempre un estado consistente. NexGestion utiliza HTMX para manejar transiciones sin recarga de página.
<?php
// modules/mi_modulo/actions/save.php
require_once __DIR__ . '/../../../db.php';
// Validar entrada y permisos de negocio
if ($_SERVER['REQUEST_METHOD'] !== 'POST') die('Acceso denegado');
$stmt = $db->prepare("INSERT INTO modulo_tabla (campo) VALUES (?)");
$stmt->execute([$_POST['dato']]);
return ['ok' => true];
04. Inyección de UI
Mount Points y HTMX
Los mounts permiten "enganchar" trozos de su módulo en el core. Ejemplo de un botón en la barra lateral:
<!-- modules/mi_modulo/mounts/sidebar_link.php -->
<button
hx-get="router.php?view=panel_mi_modulo"
hx-target="#main-content"
class="sidebar-item">
Mi Módulo
</button>
05. Desarrollo Acelerado
Prompt para Asistentes de IA
Utilice este prompt para generar módulos completos compatibles con NexGestion:
Crea un módulo portable para NEXGestión con slug "[SLUG]". Estructura: manifest.json, views, actions, mounts y db mysql/sqlite. Manifest declarativo con permisos vista.permiso. Acciones con validación de input. SQL idempotente. Mounts en sidebar.main y dashboard.widgets.
06. Validación
Comandos de Consola
Antes de distribuir su módulo, asegure la integridad sintáctica:
# Validar sintaxis PHP en todas las carpetas
php -l modules/<slug>/views/*.php
php -l modules/<slug>/actions/*.php
php -l modules/<slug>/mounts/*.php