/** * @param \Knid\Http\Request $request * @return array */ public function route(\Knid\Http\Request $request) { $requestUri = $request->getServer('REQUEST_URI'); $requestUri = substr($requestUri, mb_strlen(dirname($request->getServer('SCRIPT_NAME')))); foreach ($this->routes as $route) { if ($routeParams = $route->match($requestUri)) { return $routeParams; } } throw new Exception(); }
public function restAction(Http\Request $request, Http\Response $response) { $requestMethod = $request->getServer('REQUEST_METHOD'); switch ($requestMethod) { case 'GET': case 'POST': $action = strtolower($requestMethod) . 'Action'; break; default: throw new \Exception(); } return $this->$action($request, $response); }