56 lines
1.7 KiB
PHP
56 lines
1.7 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
require_once __DIR__ . '/bootstrap.php';
|
|
|
|
// Chargement des fichiers principaux
|
|
require_once __DIR__ . '/src/Config/AppConfig.php';
|
|
require_once __DIR__ . '/src/Core/Database.php';
|
|
require_once __DIR__ . '/src/Core/Router.php';
|
|
require_once __DIR__ . '/src/Core/Session.php';
|
|
require_once __DIR__ . '/src/Core/Request.php';
|
|
require_once __DIR__ . '/src/Core/Response.php';
|
|
require_once __DIR__ . '/src/Utils/ClientDetector.php';
|
|
require_once __DIR__ . '/src/Services/LogService.php';
|
|
|
|
// Chargement des contrôleurs
|
|
require_once __DIR__ . '/src/Controllers/LogController.php';
|
|
require_once __DIR__ . '/src/Controllers/LoginController.php';
|
|
require_once __DIR__ . '/src/Controllers/EntiteController.php';
|
|
require_once __DIR__ . '/src/Controllers/UserController.php';
|
|
require_once __DIR__ . '/src/Controllers/OperationController.php';
|
|
|
|
// Initialiser la configuration
|
|
$appConfig = AppConfig::getInstance();
|
|
$config = $appConfig->getFullConfig();
|
|
|
|
// Initialiser la base de données
|
|
Database::init($config['database']);
|
|
|
|
// Configuration CORS
|
|
$origin = $_SERVER['HTTP_ORIGIN'] ?? '';
|
|
$allowedOrigins = $config['api']['allowed_origins'];
|
|
|
|
// Vérifier si l'origine est autorisée
|
|
if (in_array($origin, $allowedOrigins)) {
|
|
header('Access-Control-Allow-Origin: ' . $origin);
|
|
header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS');
|
|
header('Access-Control-Allow-Headers: Content-Type, Authorization, X-App-Identifier');
|
|
header('Access-Control-Allow-Credentials: true');
|
|
}
|
|
|
|
// Gestion des requêtes preflight (OPTIONS)
|
|
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
|
|
exit(0);
|
|
}
|
|
|
|
// Initialiser la session
|
|
Session::start();
|
|
|
|
// Créer l'instance de routeur
|
|
$router = new Router();
|
|
|
|
// Gérer la requête
|
|
$router->handle();
|