Files
ventas_php/php8-migration/analisis-sistema.md

99 lines
2.6 KiB
Markdown

# Análisis de Sistema para Migración a PHP 8
## Información General del Sistema
- **Directorio Principal**: /var/www/html/ventas
- **Versión PHP Actual**: 8.3.6
- **Tipo de Sistema**: Sistema de ventas/inventario
## Estructura Identificada
### Archivos PHP Principales (excluyendo templates_c y tcpdf)
- `index.php` - Archivo de entrada principal
- `libraries.php` - Carga de clases y librerías
- Múltiples archivos en directorios:
- `ajax/` - Endpoints AJAX
- `classes/` - Clases del sistema
- `pdf/` - Generación de PDFs
- `properties/` - Configuración
### Librerías Detectadas
- Smarty (motor de plantillas)
- NuSOAP (webservices)
- PHPMailer
- TCPDF
- FPDI
- Clases personalizadas del sistema
## Potenciales Problemas de Compatibilidad con PHP 8
### 1. Funciones Obsoletas/Eliminadas
- `mysql_*` functions (si existen)
- `ereg*` functions
- `each()` function
- `create_function()`
- Magic quotes (si están siendo usadas)
### 2. Cambios en Manejo de Errores
- Concatenación con null
- Operadores de comparación no estricta
- Orden de evaluación de operandos
### 3. Cambios en Tipado
- Declaraciones de tipo más estrictas
- Retorno por referencia
- Parámetros por referencia
### 4. Extensiones
- mcrypt (eliminada en PHP 8)
- mysql (eliminada)
- mssql (eliminada)
## Archivos Críticos a Analizar
### Nivel 1 - Core del Sistema
1. `index.php` - Punto de entrada
2. `libraries.php` - Carga de dependencias
3. `properties/config.php` - Configuración
4. `init.php` - Inicialización
### Nivel 2 - Clases Principales
- `classes/db.class.php` - Conexión a BD
- `classes/user.class.php` - Gestión de usuarios
- `classes/producto.class.php` - Gestión de productos
- `classes/pedido.class.php` - Gestión de pedidos
### Nivel 3 - Endpoints AJAX
- Todos los archivos en `ajax/`
### Nivel 4 - Generación de Reportes
- Archivos en `pdf/`
- Archivos en `reportes/`
## Plan de Migración Propuesto
### Fase 1: Análisis Detallado
1. Escanear todos los archivos PHP en busca de:
- Funciones obsoletas
- Sintaxis incompatible
- Extensiones eliminadas
### Fase 2: Creación de Backups
1. Backup completo del sistema
2. Versionado de archivos modificados
### Fase 3: Migración Gradual
1. Actualizar configuración PHP
2. Reemplazar funciones obsoletas
3. Actualizar sintaxis
4. Probar funcionalidad
### Fase 4: Validación
1. Pruebas unitarias
2. Pruebas de integración
3. Pruebas de sistema completo
## Recomendaciones Iniciales
1. NO hacer modificaciones sin aprobación previa
2. Crear un entorno de prueba aislado
3. Hacer backup completo antes de cualquier cambio
4. Documentar todos los cambios realizados