Ajout du dossier api avec la géolocalisation automatique des casernes de pompiers

This commit is contained in:
d6soft
2025-05-16 21:03:04 +02:00
parent 69dcff42f8
commit f4f7882963
143 changed files with 24329 additions and 1 deletions

39
api/src/Core/Database.php Normal file
View File

@@ -0,0 +1,39 @@
<?php
declare(strict_types=1);
class Database {
private static ?PDO $instance = null;
private static array $config;
public static function init(array $config): void {
self::$config = $config;
}
public static function getInstance(): PDO {
if (self::$instance === null) {
try {
$dsn = sprintf("mysql:host=%s;dbname=%s;charset=utf8mb4",
self::$config['host'],
self::$config['name']
);
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
self::$instance = new PDO(
$dsn,
self::$config['username'],
self::$config['password'],
$options
);
} catch (PDOException $e) {
throw new RuntimeException("Database connection failed: " . $e->getMessage());
}
}
return self::$instance;
}
}