weitere Bearibeitung
This commit is contained in:
+25
-1
@@ -5,6 +5,7 @@ declare(strict_types=1);
|
||||
use App\Core\Autoloader;
|
||||
use App\Core\Csrf;
|
||||
use App\Core\Database;
|
||||
use App\Core\DatabaseSqlite;
|
||||
use App\Core\Env;
|
||||
use App\Core\Session;
|
||||
use App\Core\View;
|
||||
@@ -30,7 +31,30 @@ $session = new Session();
|
||||
$session->start();
|
||||
|
||||
$csrf = new Csrf($session);
|
||||
$database = new Database($config['db']);
|
||||
|
||||
// SQLite oder MySQL basierend auf DB_HOST Konfiguration und verfügbaren Treibern
|
||||
if (($config['db']['host'] ?? '') === 'sqlite') {
|
||||
$database = new DatabaseSqlite(['path' => $config['db']['name']]);
|
||||
} else {
|
||||
// Prüfe ob MySQL PDO Treiber verfügbar ist
|
||||
$availableDrivers = PDO::getAvailableDrivers();
|
||||
if (in_array('mysql', $availableDrivers)) {
|
||||
try {
|
||||
$database = new Database($config['db']);
|
||||
// Teste die Verbindung
|
||||
$database->pdo();
|
||||
} catch (\Throwable $e) {
|
||||
// Fallback zu SQLite wenn MySQL-Verbindung fehlschlägt
|
||||
error_log('MySQL connection failed, falling back to SQLite: ' . $e->getMessage());
|
||||
$database = new DatabaseSqlite(['path' => $rootPath . '/storage/database.sqlite']);
|
||||
}
|
||||
} else {
|
||||
// Fallback zu SQLite wenn MySQL-Treiber nicht verfügbar
|
||||
error_log('MySQL PDO driver not available, using SQLite');
|
||||
$database = new DatabaseSqlite(['path' => $rootPath . '/storage/database.sqlite']);
|
||||
}
|
||||
}
|
||||
|
||||
$view = new View($rootPath, [
|
||||
'config' => $config,
|
||||
'session' => $session,
|
||||
|
||||
Reference in New Issue
Block a user