GUÍA PARA DESARROLLADORES • ESTÁNDARES DE ARQUITECTURA • VER 1.0

GUÍA TÉCNICA

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
        

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"]
    }
  ]
}
        

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];
        

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>
        

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.

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