Documentación de Proyecto Sincro

verificar-rutas.php

Verificación previa al despliegue de la API v2.

Comprueba de una sola pasada lo que de otro modo se descubre en runtime, ruta por ruta y usuario por usuario:

  1. Que todos los módulos cargan (LogicException por las invariantes de Ruta, TypeError si algún handler no es un Closure).
  2. Que no hay acciones duplicadas entre módulos.
  3. Que toda página declarada en ámbito TRACKING existe en la tabla paginas y está habilitada.
  4. Que las rutas TRACKINGWEB no declaran página por error.
  5. Que las acciones que escriben en $_SESSION lo declaran.
  6. Qué acciones parecen de escritura y no declaran conexionUnica.
  7. Que toda acción invocada por el frontend existe en el registro.

El descubrimiento de módulos usa el mismo glob() que index.php: son la misma fuente de verdad, de modo que el script no puede dar por bueno un módulo que la API no sirva.

Uso: php backend/bin/verificar-rutas.php

Código de salida 0 si todo es correcto, 1 si hay errores, de modo que puede encadenarse en un despliegue.

Table of Contents

Constants

DIR_FRONTEND  = __DIR__ . '/../../frontend'
DIR_RUTAS  = __DIR__ . '/../api/v2_test/rutas'
ESCRIBEN_SESION  = ['login', 'cambiar_campania', 'update_user_permisos']
Acciones cuyo handler modifica $_SESSION. Deben declarar escribeSesion: true, o el despachador liberará el bloqueo de sesión antes de ejecutarlas y sus escrituras no se persistirán.
EXCLUIDOS  = '#[\\\\/](node_modules|dist|vendor|\.git|\.idea)[\\\\/]#'
Directorios que no forman parte del código propio.
PATRONES_ACCION  = ['/[\'"]?action[\'"]?\s*[:=]\s*[\'"]([a-zA-Z0-9_]+)[\'"]/', '/append\(\s*[\'"]action[\'"]\s*,\s*[\'"]([a-zA-Z0-9_]+)[\'"]/', '/action=([a-zA-Z0-9_]+)/']
Formas en que el frontend puede declarar la acción. La primera cubre el objeto literal de $.ajax; la segunda, las subidas con FormData; la tercera, las cadenas de consulta construidas a mano.
PREFIJOS_ESCRITURA  = ['crear_', 'insert_', 'eliminar_', 'delete_', 'modificar_', 'update_', 'actualizar_', 'anadir_', 'add_', 'ajuste_', 'ajustar_', 'asignar_', 'deshabilitar_', 'habilitar_', 'reajustar_', 'cambio_', 'set_']
Prefijos que delatan una acción de escritura por su nombre.

Constants

DIR_FRONTEND

public mixed DIR_FRONTEND = __DIR__ . '/../../frontend'

DIR_RUTAS

public mixed DIR_RUTAS = __DIR__ . '/../api/v2_test/rutas'

ESCRIBEN_SESION

Acciones cuyo handler modifica $_SESSION. Deben declarar escribeSesion: true, o el despachador liberará el bloqueo de sesión antes de ejecutarlas y sus escrituras no se persistirán.

public mixed ESCRIBEN_SESION = ['login', 'cambiar_campania', 'update_user_permisos']

Lista mantenida a mano, pero convierte un fallo silencioso —el caso del token CSRF que el servidor nunca llega a guardar— en un error visible.

EXCLUIDOS

Directorios que no forman parte del código propio.

public mixed EXCLUIDOS = '#[\\\\/](node_modules|dist|vendor|\.git|\.idea)[\\\\/]#'

PATRONES_ACCION

Formas en que el frontend puede declarar la acción. La primera cubre el objeto literal de $.ajax; la segunda, las subidas con FormData; la tercera, las cadenas de consulta construidas a mano.

public mixed PATRONES_ACCION = ['/[\'"]?action[\'"]?\s*[:=]\s*[\'"]([a-zA-Z0-9_]+)[\'"]/', '/append\(\s*[\'"]action[\'"]\s*,\s*[\'"]([a-zA-Z0-9_]+)[\'"]/', '/action=([a-zA-Z0-9_]+)/']

PREFIJOS_ESCRITURA

Prefijos que delatan una acción de escritura por su nombre.

public mixed PREFIJOS_ESCRITURA = ['crear_', 'insert_', 'eliminar_', 'delete_', 'modificar_', 'update_', 'actualizar_', 'anadir_', 'add_', 'ajuste_', 'ajustar_', 'asignar_', 'deshabilitar_', 'habilitar_', 'reajustar_', 'cambio_', 'set_']

        
On this page

Search results