Arquitectura modular
BeamReactor se basa en una arquitectura completamente modular. Cada funcionalidad está encapsulada en un plugin autónomo, que se puede integrar en cualquier punto del código o directamente en los editores WYSIWYG.
El motor centraliza todas las llamadas: ningún script PHP puede ejecutarse sin pasar por él. Este diseño garantiza un control total de los flujos de entrada/salida y un aislamiento estricto entre los componentes.
Carga automatizada
Cuando se llama a un plugin, el motor se encarga automáticamente de:
- Cargar la configuración (
conf/plugin.conf.inc.php) - Inyectar las bibliotecas (
lib/plugin.lib.inc.php) - Seleccionar la locale según el idioma del usuario
- Registrar las rutas y los handlers
Varios plugins pueden convivir en una misma página sin colisiones. Cada plugin opera en su propio espacio de nombres, con sus propios recursos CSS y JavaScript.
Filtrado de los datos
Todos los datos que entran o salen pasan por la clase Sanitizer\Parser. El sistema valida cada valor contra tipos estrictos:
Tipos primitivos
Bool, Int, Float, String con restricciones de longitud y de formato.
Tipos estructurados
Email, URL, UUID, IP, Date, JSON con validación sintáctica.
Tipos ricos
HTML (whitelist de etiquetas), Markdown, SQL (solo consultas preparadas).
Tipos de negocio
Archivos (MIME, tamaño, extensión), Imágenes (dimensiones, formato), Tokens.
Las interacciones con la base de datos usan exclusivamente consultas preparadas. La concatenación directa de parámetros está estructuralmente prohibida por la abstracción SQL.
Gestión de privilegios
El sistema implementa una jerarquía de privilegios configurable de forma global y por plugin:
OVERMIND → ADMIN → MODERATOR → HIGHUSER → USER
Cada plugin puede definir sus propios umbrales de acceso. Un plugin de estadísticas puede reservarse a los administradores, mientras que un foro estará abierto a los usuarios registrados. La granularidad llega hasta las acciones individuales dentro de un mismo plugin.
BASE_LEVEL_*, PLUGIN_LEVEL_*). Los valores numéricos nunca se escriben a mano en la lógica de negocio.
Estructura de un plugin
Catálogo de plugins
Galerías de imágenes y documentación técnica (.md) disponibles para los usuarios registrados.