/** * Add all the routes in the router in parameter * @param $router Router */ public function generateRoute(Router $router) { foreach ($this->classes as $class) { $classMethods = get_class_methods($this->namespace . $class . 'Controller'); $rc = new \ReflectionClass($this->namespace . $class . 'Controller'); $parent = $rc->getParentClass(); $parent = get_class_methods($parent->name); $className = $this->namespace . $class . 'Controller'; foreach ($classMethods as $methodName) { if (in_array($methodName, $parent) || $methodName == 'index') { continue; } else { foreach (Router::getSupportedHttpMethods() as $httpMethod) { if (strstr($methodName, $httpMethod)) { continue 2; } if (in_array($methodName . $httpMethod, $classMethods)) { $router->add('/' . strtolower($class) . '/' . $methodName, new $className(), $methodName . $httpMethod, $httpMethod); unset($classMethods[$methodName . $httpMethod]); } } $router->add('/' . strtolower($class) . '/' . $methodName, new $className(), $methodName); } } $router->add('/' . strtolower($class), new $className(), 'index'); } }