71 lines
2.0 KiB
PHP
Executable File
71 lines
2.0 KiB
PHP
Executable File
<?php
|
|
declare(strict_types=1);
|
|
|
|
// 1. Autoloader für App Namespace
|
|
spl_autoload_register(function ($class) {
|
|
// Repository Namespace zuerst prüfen (liegt außerhalb von /src/App)
|
|
if (str_starts_with($class, 'App\\Repository\\')) {
|
|
$prefix = 'App\\Repository\\';
|
|
$base_dir = __DIR__ . '/../src/Repository/';
|
|
} elseif (str_starts_with($class, 'App\\')) {
|
|
$prefix = 'App\\';
|
|
$base_dir = __DIR__ . '/../src/App/';
|
|
} else {
|
|
return;
|
|
}
|
|
|
|
$len = strlen($prefix);
|
|
|
|
$relative_class = substr($class, $len);
|
|
$file = $base_dir . str_replace('\\', '/', $relative_class) . '.php';
|
|
|
|
if (file_exists($file)) {
|
|
require $file;
|
|
}
|
|
});
|
|
|
|
// 2. Funktionen laden
|
|
require_once __DIR__ . '/../src/App/functions.php';
|
|
|
|
// 3. Konfiguration laden (nur Root-Dateien; Sync kopiert staging/prod hierher)
|
|
$domainFile = __DIR__ . '/domaindata.php';
|
|
$settingsFile = __DIR__ . '/settings.php';
|
|
$configFile = __DIR__ . '/db.php';
|
|
$baseConfigFile = __DIR__ . '/base_db.php';
|
|
$fallbackBaseConfig = __DIR__ . '/staging/db_settings_basic.php';
|
|
$fallbackBaseConfigProd = __DIR__ . '/prod/db_settings_basic.php';
|
|
|
|
if (file_exists($domainFile)) {
|
|
require_once $domainFile;
|
|
}
|
|
|
|
if (file_exists($settingsFile)) {
|
|
require_once $settingsFile;
|
|
}
|
|
|
|
$dbConfig = [];
|
|
if (file_exists($configFile)) {
|
|
$dbConfig = require $configFile;
|
|
}
|
|
|
|
// Base DB config (optional)
|
|
$baseDbConfig = [];
|
|
if (file_exists($baseConfigFile)) {
|
|
$baseDbConfig = require $baseConfigFile;
|
|
}
|
|
if (empty($baseDbConfig) && file_exists($fallbackBaseConfig)) {
|
|
$baseDbConfig = require $fallbackBaseConfig;
|
|
}
|
|
if (empty($baseDbConfig) && file_exists($fallbackBaseConfigProd)) {
|
|
$baseDbConfig = require $fallbackBaseConfigProd;
|
|
}
|
|
|
|
// Globales Config Objekt erstellen
|
|
global $appConfig;
|
|
$dbEnabled = defined('APP_DB_ENABLED') ? APP_DB_ENABLED : true;
|
|
$baseDbEnabled = defined('APP_BASE_DB_ENABLED') ? APP_BASE_DB_ENABLED : false;
|
|
$appConfig = new \App\Config($dbConfig, $dbEnabled, $baseDbConfig, $baseDbEnabled);
|
|
|
|
// App initialisieren
|
|
\App\App::init($appConfig);
|