diff --git a/home/core/Router.php b/home/core/Router.php index f3a2549..f3faa78 100644 --- a/home/core/Router.php +++ b/home/core/Router.php @@ -18,11 +18,15 @@ class Router { } require_once $controllerPath . $this->controller . '.php'; $this->controller = new $this->controller; - // Method Check (Case-insensitive & kebab-case support) + // Method Check (Case-insensitive & kebab-case/snake_case support) if (isset($url[1])) { - $candidateMethod = str_replace('-', '', strtolower($url[1])); + $rawMethod = strtolower($url[1]); + $normalizedMethod = str_replace(['-', '_'], '', $rawMethod); foreach (get_class_methods($this->controller) as $methodName) { - if (strcasecmp(str_replace('_', '', $methodName), $candidateMethod) === 0 && strpos($methodName, '_') !== 0) { + if (strpos($methodName, '_') === 0) { + continue; // Skip magic/internal methods + } + if (strcasecmp($methodName, $rawMethod) === 0 || strcasecmp(str_replace(['-', '_'], '', $methodName), $normalizedMethod) === 0) { $this->method = $methodName; unset($url[1]); break;