Diagnóstico y Plan de Adaptación a PHP 8.5.1 - Alxarafe
Este documento resume el estado actual del núcleo de Alxarafe y propone una hoja de ruta para aprovechar las capacidades de PHP 8.5.1.
1. Diagnóstico General de la Arquitectura
El núcleo del microframework presenta una base sólida pero con una deuda técnica acumulada en patrones que PHP 8.x permite modernizar.
Puntos Críticos Identificados
- Dependencia de Estados Estáticos: El uso extensivo de métodos estáticos en
Database,Trans,DebugyRoutesdificulta la testabilidad y el desacoplamiento. - Abuso de
stdClass: Las configuraciones y el manejo de datos dependen de objetos anónimos, perdiendo los beneficios del tipado fuerte de PHP. - Magia en DTOs: El
DtoTraitutiliza métodos mágicos (__get,__set) que pueden ser sustituidos por características nativas más eficientes. - Manejo de Ciclo de Vida: El uso de
die()yheader()dentro de funciones de librería interrumpe el flujo controlado de la aplicación.
2. Recomendaciones de Mejora para PHP 8.5.1
A. Implementación de Property Hooks (PHP 8.4+)
Sustituir la lógica de métodos mágicos en DtoTrait por hooks nativos. Esto permite validaciones y transformaciones de datos directamente en la definición de la propiedad, mejorando el rendimiento y la legibilidad.
B. Clases Readonly y DTOs Tipados
Migrar todas las estructuras de configuración (actualmente en Config.php) y objetos de datos a clases readonly.
- Beneficio: Inmutabilidad garantizada y autocompletado total en el IDE sin depender de comentarios PHPDoc para
stdClass.
C. Constructor Property Promotion
Simplificar los constructores de controladores y servicios eliminando la declaración repetitiva de propiedades.
D. Modernización del Sistema de Rutas y Dispatcher
- Caché de Rutas: El sistema actual escanea directorios con
globen cada petición. Se recomienda implementar un generador de caché que produzca un mapa de rutas en un archivo PHP estático. - Middleware: Introducir una capa de middleware para manejar la autenticación y la inicialización, eliminando la lógica de redirección manual en los constructores de los controladores.
E. Tipado Estricto y Retornos
Asegurar que todos los archivos incluyan declare(strict_types=1); y que todos los métodos tengan tipos de retorno definidos, eliminando el uso de mixed donde sea posible.
3. Hoja de Ruta Sugerida
- Fase 1: Modernización de DTOs y Modelos
- Refactorizar
DtoTraitpara usar Property Hooks. - Introducir clases de datos para las configuraciones.
- Refactorizar
- Fase 2: Limpieza de Dependencias
- Actualizar componentes de Illuminate a la versión 11.
- Evaluar la sustitución de
jenssegers/bladepor el motor nativo de Illuminate\View.
- Fase 3: Refactorización del Flujo de Ejecución
- Migrar el
Dispatchera un modelo basado en eventos o middleware. - Eliminar llamadas a
die()y centralizar la gestión de respuestas HTTP.
- Migrar el
Documento generado por Junie (JetBrains AI) el 1 de febrero de 2026.