parseUrl(); // Absoluter Pfad zu den Controllern (geht von core/ einen Ordner hoch und in app/controllers) $controllerPath = __DIR__ . '/../app/controllers/'; // 1. Controller prüfen (z.B. /user/ -> UserController) if (isset($url[0]) && file_exists($controllerPath . ucfirst($url[0]) . 'Controller.php')) { $this->controller = ucfirst($url[0]) . 'Controller'; unset($url[0]); } require_once $controllerPath . $this->controller . '.php'; $this->controller = new $this->controller; // 2. Methode prüfen (z.B. /user/edit -> Methode edit()) if (isset($url[1])) { if (method_exists($this->controller, $url[1])) { $this->method = $url[1]; unset($url[1]); } } // 3. Restliche Parameter sammeln $this->params = $url ? array_values($url) : []; // 4. Controller-Methode mit den Parametern aufrufen call_user_func_array([$this->controller, $this->method], $this->params); } private function parseUrl() { if (isset($_GET['url'])) { return explode('/', filter_var(rtrim($_GET['url'], '/'), FILTER_SANITIZE_URL)); } return []; } }