Saltar al contenido principal

Desarrollo

Tests

Suite de tests sin dependencias externas (runner propio, sin PHPUnit):

php tests/run.php

Cubre seguridad de la API, logger, generadores y el motor del page-builder (plantillas, formularios, control de acceso). Devuelve código de salida 0/1 (apto para CI).

Generadores CLI (tools/)

Scaffolders que reutilizan funciones puras (testeadas) como backend:

php tools/make-web-page.php <tabla> [opciones] # página web (lista/detalle)
php tools/make-migration.php <nombre> --date YYYY-MM-DD [columnas]
php tools/make-table.php config.json # tabla + CRUD admin (JSON)
php tools/make-page.php config.json # página pública desde JSON
php tools/introspect.php # snapshot: plugins activos, tablas, relaciones
php tools/doctor.php --json # diagnóstico del entorno (exit 1 si hay errores)
php tools/schema.php [tabla] # qué existe: secciones, columnas, páginas
php tools/make-column.php <tabla> --name=<campo> --type=<tipo> # agregar campo a una sección existente
php tools/seed.php <tabla> datos.json [--key=<col>] # cargar datos (idempotente con --key)
php tools/make-plugin.php <nombre-kebab> # esqueleto de plugin
  • tools/page-builder.php — motor del Generador de Páginas (plantillas, formularios, login/acceso). Usado por el CMS y testeado.
  • tools/setup.php — creación de config/directorios (lo llama setup.sh).

Logger

core/logger.php — logger central que nunca lanza excepciones (cae a error_log). Escribe en logs/ (denegado por web, archivo diario).

Logger::error('mensaje', ['contexto' => 1]);
Logger::warning(...); Logger::info(...); Logger::debug(...);

Permisos / diagnóstico

core/permissions.php + la página "Estado del Sistema" del CMS diagnostican y reparan (en lo posible) los directorios escribibles.

Convenciones

  • Comentarios de código en inglés (obligatorio). Docs de usuario en español.
  • Controladores: nombre.controller.php. Servicios: nombre.service.php.
  • Migraciones descriptivas en migrations/ (add_*.sql, create_*.sql).
  • Mantén config.example.php actualizado al añadir configuración.

Plugins

Cada plugin es autocontenido en plugins/nombre-plugin/ (controllers, views, assets, config). Se registran en plugins/plugins-registry.php. Sigue la estructura de los plugins existentes (payku, workflow-manager).

Contribución

  1. Crea una rama para tu cambio.
  2. Asegúrate de que php tests/run.php pase.
  3. Abre un Pull Request a development.