Primer commit del sistema avantika sin cambios
This commit is contained in:
120
php8-migration/plan-ejecucion.md
Normal file
120
php8-migration/plan-ejecucion.md
Normal file
@@ -0,0 +1,120 @@
|
||||
# Plan de Migración PHP 8 - Archivos y Cambios Específicos
|
||||
|
||||
## Requisitos Adicionales del Cliente
|
||||
|
||||
### Configuración Segura con .env
|
||||
- **Migrar toda configuración sensible a archivo .env**
|
||||
- **Eliminar credenciales de bases de datos del código**
|
||||
- **Usar empresaId del usuario para determinar conexión**
|
||||
|
||||
### Arquitectura Multi-Empresa
|
||||
- **Los usuarios tienen campo empresaId en su registro**
|
||||
- **La conexión a BD debe seleccionarse dinámicamente por empresaId**
|
||||
- **No debe existir información de bases de datos fuera del .env**
|
||||
|
||||
## Archivos Creados para la Migración
|
||||
|
||||
### 1. `/php8-migration/analisis-sistema.md`
|
||||
- Análisis general del sistema
|
||||
- Identificación de estructura y componentes
|
||||
- Evaluación de librerías utilizadas
|
||||
|
||||
### 2. `/php8-migration/reporte-problemas.md`
|
||||
- Reporte detallado de incompatibilidades
|
||||
- Priorización de problemas
|
||||
- Estimación de tiempos y riesgos
|
||||
|
||||
### 3. `/php8-migration/ejemplo-db-mysqli.php`
|
||||
- Ejemplo de migración de MySQL a MySQLi
|
||||
- Código compatible con PHP 8
|
||||
|
||||
### 4. `/php8-migration/ejemplo-env-config.php`
|
||||
- Ejemplo de configuración con archivo .env
|
||||
- Gestión multi-empresa basada en usuario
|
||||
|
||||
## Cambios Críticos Requeridos
|
||||
|
||||
### Nivel URGENTE - Configuración y Base de Datos
|
||||
|
||||
#### 1. Migrar a Configuración .env
|
||||
**Archivo:** `config.php` (eliminar completamente)
|
||||
- **Eliminar todas las credenciales del código**
|
||||
- **Crear archivo .env con variables seguras**
|
||||
- **Implementar clase Config para gestión centralizada**
|
||||
- **Impacto:** Seguridad y mantenibilidad
|
||||
|
||||
#### 2. Implementar Conexión Multi-Empresa
|
||||
**Archivos:** `classes/db.class.php`, `classes/util.class.php`
|
||||
- **Reemplazar 13 funciones mysql_* por mysqli***
|
||||
- **Implementar gestión de empresas basada en empresaId del usuario**
|
||||
- **Crear DatabaseManager para conexiones dinámicas**
|
||||
- **Impacto:** Sistema completo sin base de datos
|
||||
|
||||
#### 3. Actualizar Lógica de Selección de BD
|
||||
**Archivos:** 100+ archivos con `$_SESSION['empresaId']`
|
||||
- **Reemplazar `SQL_DATABASE2.$empresaId` por conexión dinámica**
|
||||
- **Usar DatabaseManager para obtener conexión específica**
|
||||
- **Impacto:** Funcionalidad multi-empresa completa
|
||||
|
||||
### Nivel ALTO - Funciones Eliminadas
|
||||
1. **`classes/util.class.php:575`** - `ereg_replace()` → `preg_replace()`
|
||||
2. **`ajax/cuentas-pagar.php:18`** - `split()` → `explode()`
|
||||
3. **`ajax/evaluar-pedidos.php:160,360`** - `split()` → `explode()`
|
||||
4. **7 archivos con `each()`** - Reemplazar por `foreach`
|
||||
5. **4 archivos con `create_function()`** - Reemplazar por funciones anónimas
|
||||
|
||||
### Nivel MEDIO - Sintaxis
|
||||
1. **100+ ocurrencias de `$string{index}`** → `$string[index]`
|
||||
2. **98+ ocurrencias de `list()` incorrecto** → sintaxis moderna
|
||||
3. **Múltiples asignaciones por referencia** → revisión y limpieza
|
||||
|
||||
## Estructura de Archivos de Migración
|
||||
|
||||
```
|
||||
php8-migration/
|
||||
├── analisis-sistema.md # Análisis general
|
||||
├── reporte-problemas.md # Problemas identificados
|
||||
├── ejemplo-db-mysqli.php # Ejemplo de migración DB
|
||||
├── ejemplo-env-config.php # Ejemplo configuración .env
|
||||
├── .env.example # Plantilla archivo .env
|
||||
├── plan-ejecucion.md # Plan actualizado (este archivo)
|
||||
└── archivos-criticos.txt # Lista de archivos críticos
|
||||
```
|
||||
|
||||
## Recomendaciones de Seguridad
|
||||
|
||||
### Antes de Cualquier Cambio:
|
||||
1. ✅ **Backup completo del sistema**
|
||||
2. ✅ **Crear entorno de prueba aislado**
|
||||
3. ✅ **Documentar versión actual funcional**
|
||||
4. ✅ **Lista de todos los usuarios y procesos activos**
|
||||
|
||||
### Durante la Migración:
|
||||
1. ✅ **Cambiar un módulo a la vez**
|
||||
2. ✅ **Probar cada cambio inmediatamente**
|
||||
3. ✅ **Mantener log detallado de modificaciones**
|
||||
4. ✅ **No aplicar cambios a producción sin pruebas**
|
||||
|
||||
### Después de Cada Cambio:
|
||||
1. ✅ **Ejecutar pruebas unitarias**
|
||||
2. ✅ **Verificar funcionalidad completa**
|
||||
3. ✅ **Comprobar rendimiento**
|
||||
4. ✅ **Validar que no hay regresiones**
|
||||
|
||||
## Próximos Pasos Sugeridos
|
||||
|
||||
1. **Aprobación del plan:** Revisar y aprobar este análisis
|
||||
2. **Preparación del entorno:** Configurar entorno de pruebas
|
||||
3. **Backup completo:** Realizar backup integral del sistema
|
||||
4. **Migración fase 1:** Actualizar capa de base de datos (MySQL → MySQLi)
|
||||
5. **Migración fase 2:** Reemplazar funciones eliminadas
|
||||
6. **Migración fase 3:** Actualizar sintaxis
|
||||
7. **Pruebas finales:** Validación completa del sistema
|
||||
|
||||
## Estado Actual
|
||||
- ❌ **NO COMPATIBLE** con PHP 8
|
||||
- ⚠️ **Requiere migración completa** antes de actualizar PHP
|
||||
- 🔴 **Alto riesgo** de pérdida total de funcionalidad
|
||||
- 📋 **Plan detallado** disponible para ejecución
|
||||
|
||||
**ADVERTENCIA:** No actualizar la versión de PHP sin completar todos los cambios de migración.
|
||||
Reference in New Issue
Block a user