51 lines
1.6 KiB
PHP
Executable File
51 lines
1.6 KiB
PHP
Executable File
<?php
|
|
/**
|
|
* Bootstrap File
|
|
*
|
|
* Carga y configura todos los componentes esenciales de la aplicación.
|
|
*/
|
|
|
|
// Iniciar sesión si no está iniciada
|
|
if (session_status() === PHP_SESSION_NONE) {
|
|
session_start();
|
|
}
|
|
|
|
// Habilitar logging de errores
|
|
ini_set('display_errors', 0); // No mostrar errores al usuario
|
|
ini_set('log_errors', 1);
|
|
ini_set('error_log', __DIR__ . '/../logs/php_errors.log'); // Ruta centralizada
|
|
|
|
// Cargar variables de entorno
|
|
if (file_exists(__DIR__ . '/../.env')) {
|
|
$lines = file(__DIR__ . '/../.env', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
|
|
foreach ($lines as $line) {
|
|
if (strpos(trim($line), '#') === 0) continue;
|
|
if (strpos($line, '=') === false) continue;
|
|
list($key, $value) = explode('=', $line, 2);
|
|
$_ENV[trim($key)] = trim($value);
|
|
}
|
|
}
|
|
|
|
// 1. Cargar la conexión a la base de datos
|
|
require_once __DIR__ . '/database/connection.php';
|
|
|
|
// 2. Cargar el helper de autenticación JWT
|
|
require_once __DIR__ . '/auth/jwt.php';
|
|
|
|
// 3. Cargar helpers generales (que ahora pueden asumir que la DB y JWT existen)
|
|
require_once __DIR__ . '/utils/helpers.php';
|
|
|
|
// 4. Realizar la autenticación y obtener los datos del usuario
|
|
// Esto se hace una sola vez y los datos se guardan en la clase JWTAuth
|
|
try {
|
|
$userData = JWTAuth::requireAuth();
|
|
} catch (Exception $e) {
|
|
// Si la autenticación falla, redirigir al login
|
|
// Esto es más seguro que mostrar un 'die()', ya que no expone la estructura de archivos.
|
|
header('Location: /login.php');
|
|
exit;
|
|
}
|
|
|
|
// 5. Cargar el gestor de traducciones (que depende de los datos del usuario para el idioma)
|
|
require_once __DIR__ . '/translations/manager.php';
|