Manual de Desarrollo de Módulos¶
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.
01. Estructura de Archivos¶
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écnico¶
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?page=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: