public function map($routeUrl, $target = '', array $args = array()) { $route = new Route(); $route->setUrl($this->basePath . $routeUrl); $route->setTarget($target); if (isset($args['methods'])) { $methods = explode(',', $args['methods']); $route->setMethods($methods); } if (isset($args['filters'])) { $route->setFilters($args['filters']); } if (isset($args['name'])) { $route->setName($args['name']); if (!isset($this->namedRoutes[$route->getName()])) { $this->namedRoutes[$route->getName()] = $route; } } $this->routes[] = $route; }
public function callRequest(Route $route) { $route->setUrl($this->urlRequest); foreach ($route->getRoutes() as $url => $config) { if ($route->testEqualsUrl($url) and strtolower($_SERVER['REQUEST_METHOD']) == $config->type) { $class = "Younote\\Controllers\\{$config->class}"; if (class_exists($class)) { $controller = new $class(); $method = $config->method; if (!method_exists($controller, $method)) { echo 'ERROR: method not found'; } else { $this->setParam($url); new Response($controller->{$method}($this)); break; } } else { echo 'ERROR: class not found'; } } } }