";
echo "
🔧 Corrector API";
echo "";
echo "🔧 CORRECTOR AUTOMÁTICO DE RUTAS API
";
// Verificar que existe la carpeta api
if (!is_dir('api')) {
echo "❌ CRÍTICO: Carpeta 'api' no encontrada
";
exit;
}
// Obtener todos los archivos PHP de la API
$api_files = glob('api/*.php');
if (empty($api_files)) {
echo "❌ No se encontraron archivos PHP en la API
";
exit;
}
echo "✅ Encontrados " . count($api_files) . " archivos para corregir
";
echo "";
echo "
🔄 CORRIGIENDO ARCHIVOS...
";
$corrections = [
// Ruta incorrecta -> Ruta correcta
"require_once 'config/config.php';" => "require_once '../config/config.php';",
'require_once "config/config.php";' => 'require_once "../config/config.php";',
"include_once 'config/config.php';" => "include_once '../config/config.php';",
'include_once "config/config.php";' => 'include_once "../config/config.php";',
// También corregir rutas a classes si las hay
"require_once 'classes/" => "require_once '../classes/",
'require_once "classes/' => 'require_once "../classes/',
"include_once 'classes/" => "include_once '../classes/",
'include_once "classes/' => 'include_once "../classes/',
// Servicios
"require_once 'services/" => "require_once '../services/",
'require_once "services/' => 'require_once "../services/',
];
$total_files = 0;
$total_corrections = 0;
$errors = [];
foreach ($api_files as $file) {
$filename = basename($file);
$total_files++;
echo "
🔄 Procesando: $filename
";
try {
// Leer contenido del archivo
$content = file_get_contents($file);
if ($content === false) {
$errors[] = "No se pudo leer: $filename";
continue;
}
$original_content = $content;
$file_corrections = 0;
// Aplicar todas las correcciones
foreach ($corrections as $wrong => $correct) {
$old_content = $content;
$content = str_replace($wrong, $correct, $content);
if ($content !== $old_content) {
$matches = substr_count($old_content, $wrong);
$file_corrections += $matches;
echo "
✅ $matches corrección(es): '$wrong' → '$correct'
";
}
}
// Si hubo cambios, guardar el archivo
if ($content !== $original_content) {
if (file_put_contents($file, $content) === false) {
$errors[] = "No se pudo escribir: $filename";
continue;
}
$total_corrections += $file_corrections;
echo "
✅ Archivo guardado: $filename ($file_corrections correcciones)
";
} else {
echo "
⚠️ Sin cambios necesarios: $filename
";
}
} catch (Exception $e) {
$errors[] = "Error procesando $filename: " . $e->getMessage();
}
echo "
";
}
echo "
";
// Verificación post-corrección
echo "";
echo "
✅ VERIFICACIÓN POST-CORRECCIÓN
";
echo "
📊 Archivos procesados: $total_files
";
echo "
📊 Total correcciones: $total_corrections
";
if (!empty($errors)) {
echo "
❌ Errores encontrados:
";
foreach ($errors as $error) {
echo "
• $error
";
}
} else {
echo "
✅ Sin errores durante la corrección
";
}
// Verificar que las rutas sean correctas ahora
echo "
VERIFICANDO RUTAS CORREGIDAS...
";
$verification_success = true;
foreach ($api_files as $file) {
$filename = basename($file);
$content = file_get_contents($file);
// Verificar que no quedan rutas incorrectas
if (preg_match('/require_once\s+[\'"]config\/config\.php[\'"]/', $content) ||
preg_match('/include_once\s+[\'"]config\/config\.php[\'"]/', $content)) {
echo "
❌ $filename: Aún tiene rutas incorrectas
";
$verification_success = false;
} else {
// Verificar que tiene la ruta correcta
if (preg_match('/require_once\s+[\'"]\.\.\/config\/config\.php[\'"]/', $content) ||
preg_match('/include_once\s+[\'"]\.\.\/config\/config\.php[\'"]/', $content)) {
echo "
✅ $filename: Ruta corregida correctamente
";
} else {
echo "
⚠️ $filename: No se encontró require de config
";
}
}
}
echo "
";
// Test final
echo "";
echo "
🔬 TEST FINAL
";
if ($verification_success && $total_corrections > 0) {
echo "
🎉 ¡CORRECCIÓN COMPLETADA CON ÉXITO!
";
echo "
✅ Todas las rutas de la API han sido corregidas
";
echo "
✅ Los archivos ahora buscan '../config/config.php'
";
echo "
SIGUIENTE PASO:
";
echo "
• Prueba cualquier endpoint de la API
";
echo "
";
echo "
";
} elseif ($total_corrections === 0) {
echo "
⚠️ No se encontraron correcciones necesarias
";
echo "
Puede que las rutas ya estén correctas o hay otro problema
";
echo "
VERIFICAR:
";
echo "
";
} else {
echo "
❌ Corrección incompleta
";
echo "
Hay problemas que requieren revisión manual
";
}
echo "
";
echo "