Files
nexus/config/fileload.php

63 lines
1.7 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';
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;
}
// 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);