public function getControllerFor(Request $request, RtNode $routes) { $routeResult = $routes->findRouteFor($request); if ($routeResult->routeExists) { if ($routeResult->methodIsSupported) { $controller = $this->getControllerFromRouteResult($request, $routeResult); } else { throw new RecessResponseException('METHOD not supported, supported METHODs are: ' . implode(',', $routeResult->acceptableMethods), ResponseCodes::HTTP_METHOD_NOT_ALLOWED, get_defined_vars()); } } else { throw new RecessResponseException('Resource does not exist.', ResponseCodes::HTTP_NOT_FOUND, get_defined_vars()); } Application::activate($request->meta->app); $this->controller = $controller; return $controller; }