AAEG v1.2 – Río Magdalena
Listado Unificado de Mejoras (basado en el core actual)
Autor: Benjamín Sánchez Cárdenas
Fecha: Octubre 2025
──────────────────────────────────────────────
Alta prioridad / Baja complejidad
──────────────────────────────────────────────
-
Validar existencia de $_POST['endpoint'] antes de sanitizar
Motivo: Evita errores en entornos con strict_types o configuraciones estrictas de PHP.
-
Unificar validación de nombre de endpoint
Motivo: La expresión regular /^[a-zA-Z0-9_-]+$/ podría extraerse como constante o método privado reutilizable.
-
Añadir verificación de tipo callable en $handler
Motivo: register() no valida si $handler es un callable válido. Esto puede causar errores en tiempo de ejecución.
──────────────────────────────────────────────
Alta prioridad / Media complejidad
──────────────────────────────────────────────
-
Implementar caché de IP en get_client_ip()
Motivo: El método se ejecuta múltiples veces por solicitud. Guardar el resultado en una propiedad estática evitaría redundancia.
-
Modularizar process_request()
Motivo: Actualmente contiene validación, autorización, sanitización y ejecución en un solo bloque. Separar en métodos como validate_nonce(), authorize_user(), resolve_handler() mejoraría legibilidad y testabilidad.
──────────────────────────────────────────────
Media prioridad / Baja complejidad
──────────────────────────────────────────────
-
Añadir soporte para GET en modo test
Motivo: Actualmente solo se evalúa $_POST. Permitir $_GET en test_mode facilitaría pruebas sin JavaScript.
-
Documentar schema con tipos aceptados
Motivo: Aunque se soportan tipos como int, bool, email, array, string, no hay documentación formal ni validación de tipos no reconocidos.
-
Fallback si AAEG_ACCESS_LOG o AAEG_ERROR_LOG no están definidos
Motivo: Actualmente el log simplemente no ocurre. Un fallback a error_log() estándar permitiría trazabilidad mínima.
──────────────────────────────────────────────
Media prioridad / Alta complejidad
──────────────────────────────────────────────
-
Soporte para múltiples handlers por endpoint
Motivo: Permitir múltiples callbacks por endpoint (por ejemplo, para logging, validación extendida o transformación) aumentaría flexibilidad.
-
Persistencia opcional de logs en base de datos
Motivo: Actualmente los logs se escriben en archivos. Ofrecer una capa opcional para almacenar en tabla personalizada permitiría auditoría estructurada.
──────────────────────────────────────────────
Baja prioridad / Media complejidad
──────────────────────────────────────────────
-
Soporte para application/json como entrada
Motivo: Actualmente solo se procesan $_POST. Leer php://input y parsear JSON permitiría integración con clientes modernos.
-
Generar automáticamente el nonce desde register()
Motivo: Podría ofrecerse un helper para generar el nonce esperado por cada endpoint registrado.
AAEG v1.2 – Río Magdalena
Listado Unificado de Mejoras (basado en el core actual)
Autor: Benjamín Sánchez Cárdenas
Fecha: Octubre 2025
──────────────────────────────────────────────
Alta prioridad / Baja complejidad
──────────────────────────────────────────────
Validar existencia de $_POST['endpoint'] antes de sanitizar
Motivo: Evita errores en entornos con strict_types o configuraciones estrictas de PHP.
Unificar validación de nombre de endpoint
Motivo: La expresión regular /^[a-zA-Z0-9_-]+$/ podría extraerse como constante o método privado reutilizable.
Añadir verificación de tipo callable en $handler
Motivo: register() no valida si $handler es un callable válido. Esto puede causar errores en tiempo de ejecución.
──────────────────────────────────────────────
Alta prioridad / Media complejidad
──────────────────────────────────────────────
Implementar caché de IP en get_client_ip()
Motivo: El método se ejecuta múltiples veces por solicitud. Guardar el resultado en una propiedad estática evitaría redundancia.
Modularizar process_request()
Motivo: Actualmente contiene validación, autorización, sanitización y ejecución en un solo bloque. Separar en métodos como validate_nonce(), authorize_user(), resolve_handler() mejoraría legibilidad y testabilidad.
──────────────────────────────────────────────
Media prioridad / Baja complejidad
──────────────────────────────────────────────
Añadir soporte para GET en modo test
Motivo: Actualmente solo se evalúa $_POST. Permitir $_GET en test_mode facilitaría pruebas sin JavaScript.
Documentar schema con tipos aceptados
Motivo: Aunque se soportan tipos como int, bool, email, array, string, no hay documentación formal ni validación de tipos no reconocidos.
Fallback si AAEG_ACCESS_LOG o AAEG_ERROR_LOG no están definidos
Motivo: Actualmente el log simplemente no ocurre. Un fallback a error_log() estándar permitiría trazabilidad mínima.
──────────────────────────────────────────────
Media prioridad / Alta complejidad
──────────────────────────────────────────────
Soporte para múltiples handlers por endpoint
Motivo: Permitir múltiples callbacks por endpoint (por ejemplo, para logging, validación extendida o transformación) aumentaría flexibilidad.
Persistencia opcional de logs en base de datos
Motivo: Actualmente los logs se escriben en archivos. Ofrecer una capa opcional para almacenar en tabla personalizada permitiría auditoría estructurada.
──────────────────────────────────────────────
Baja prioridad / Media complejidad
──────────────────────────────────────────────
Soporte para application/json como entrada
Motivo: Actualmente solo se procesan $_POST. Leer php://input y parsear JSON permitiría integración con clientes modernos.
Generar automáticamente el nonce desde register()
Motivo: Podría ofrecerse un helper para generar el nonce esperado por cada endpoint registrado.