Primer commit del sistema separado falta mejorar mucho
This commit is contained in:
50
shared/bootstrap.php
Executable file
50
shared/bootstrap.php
Executable file
@@ -0,0 +1,50 @@
|
||||
<?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';
|
||||
Reference in New Issue
Block a user