init Abgabe

This commit is contained in:
WummerMIB
2025-12-04 23:37:05 +01:00
parent dda70db0be
commit 4db823c14a
534 changed files with 72693 additions and 0 deletions
+79
View File
@@ -0,0 +1,79 @@
<?php
require_once("../config/config.php");
require_once("../libs/Database.php");
require_once("../libs/Factory.php");
require_once("../libs/Model.php");
if (session_status() === PHP_SESSION_NONE) {
session_start();
}
// ================= AUTLOADER =================
spl_autoload_register(function ($class) {
$paths = [
__DIR__ . '/../controller/' . $class . '.php',
__DIR__ . '/../model/' . $class . '.php',
__DIR__ . '/../view/' . $class . '.php'
];
foreach ($paths as $file) {
if (file_exists($file)) {
require_once $file;
return;
}
}
});
// ================= ROUTING =================
$url = $_GET['url'] ?? '';
$url = trim($url, '/');
$parts = explode('/', $url);
// --- Controller oder Datei bestimmen ---
$controllerBase = !empty($parts[0]) ? $parts[0] : 'Home'; // Default Home
$method = !empty($parts[1]) ? $parts[1] : 'index';
// Prüfen: existiert Datei im Controller-Ordner?
$controllerFile = __DIR__ . '/../controller/' . $controllerBase . '.php';
try {
if (file_exists($controllerFile)) {
// Datei existiert → einbinden
require_once $controllerFile;
// Prüfen, ob Klasse existiert
if (class_exists($controllerBase)) {
$controller = new $controllerBase();
} else {
// Falls Klasse nicht existiert → anonymes Objekt
$controller = new class {
public function __call($name, $args) {
throw new Exception("Methode '$name' nicht gefunden.");
}
};
}
// Prüfen, ob Methode existiert
if (!method_exists($controller, $method)) {
throw new Exception("Methode '$method' nicht gefunden");
}
// Methode ausführen
$controller->$method();
} else {
// Datei existiert nicht → ErrorController
throw new Exception("Controller-Datei '$controllerBase.php' nicht gefunden");
}
} catch (Exception $e) {
// ================= ERROR FALLBACK =================
if (class_exists('ErrorController')) {
$error = new ErrorController();
$error->index($e->getMessage());
} else {
echo "Fehler: " . $e->getMessage();
}
}