Initial commit: Modular Deploymentcenter platform

This commit is contained in:
Deploymentcenter Bot
2026-08-05 21:23:24 +02:00
commit 3a38fd4837
27 changed files with 2323 additions and 0 deletions
+41
View File
@@ -0,0 +1,41 @@
<?php
namespace Deploymentcenter\Core;
use PDO;
use PDOException;
class Db
{
private static ?PDO $instance = null;
public static function init(array $config): PDO
{
if (self::$instance === null) {
$dbCfg = $config['db'];
$dsn = sprintf('mysql:host=%s;dbname=%s;charset=%s', $dbCfg['host'], $dbCfg['dbname'], $dbCfg['charset']);
$options = [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
PDO::ATTR_EMULATE_PREPARES => false,
];
try {
self::$instance = new PDO($dsn, $dbCfg['username'], $dbCfg['password'], $options);
} catch (PDOException $e) {
throw new \Exception('Database connection failed: ' . $e->getMessage());
}
}
return self::$instance;
}
public static function getInstance(): PDO
{
if (self::$instance === null) {
$config = require __DIR__ . '/../../config/config.php';
return self::init($config);
}
return self::$instance;
}
}