File "index.php"
Full Path: C:/wamp64/www/Asistencia_Capacitacion/index.php
File size: 2.73 KB
MIME-type: text/x-php
Charset: utf-8
<?php
// File: index.php (Controlador Frontal en la raíz)
// --- Paso 1: Configuración y Seguridad ---
require_once 'Controladores/Core/SessionHandler.php';
check_session_timeout();
// --- Paso 2: Incluir las Clases ---
// Modelos
require_once 'Modelos/Database.php';
require_once 'Modelos/LoginModel.php';
// Controladores
require_once 'Controladores/BaseController.php';
require_once 'Controladores/LoginController.php';
require_once 'Controladores/MenuController.php';
require_once 'Controladores/AsistenciaController.php';
require_once 'Controladores/CapacitacionController.php';
require_once 'Controladores/ConsultaController.php';
require_once 'Controladores/AdminController.php';
// --- Paso 3: Enrutador ---
$url = isset($_GET['url']) ? $_GET['url'] : 'login/index';
$url = explode('/', trim($url, '/'));
// El nombre del controlador se normaliza a ucfirst+lowercase para el nombre de clase
$controllerName = isset($url[0]) ? ucfirst(strtolower($url[0])) . 'Controller' : 'LoginController';
// *** CORRECCIÓN CLAVE ***
// El método se convierte a MINÚSCULAS para que el router sea insensible a mayúsculas.
// Por eso todos los métodos en los controladores deben estar en minúsculas.
// procesarSalida → procesarsalida
$methodName = isset($url[1]) ? strtolower($url[1]) : 'index';
$params = array_slice($url, 2);
// --- Paso 4: Cargar y Ejecutar el Controlador ---
$controllerPath = 'Controladores/' . $controllerName . '.php';
if (file_exists($controllerPath)) {
$controller = new $controllerName();
if (method_exists($controller, $methodName)) {
call_user_func_array([$controller, $methodName], $params);
} else {
// Si es petición AJAX devolver JSON, si no, error HTML
if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest') {
header('Content-Type: application/json');
http_response_code(404);
echo json_encode(['success' => false, 'message' => "Método '{$methodName}' no encontrado en '{$controllerName}'."]);
} else {
header("HTTP/1.0 404 Not Found");
die("Error 404: Método '{$methodName}' no encontrado en el controlador '{$controllerName}'.");
}
}
} else {
if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest') {
header('Content-Type: application/json');
http_response_code(404);
echo json_encode(['success' => false, 'message' => "Controlador '{$controllerName}' no encontrado."]);
} else {
header("HTTP/1.0 404 Not Found");
die("Error 404: Controlador '{$controllerName}' no encontrado.");
}
}