public static function commit(\Symfony\Component\HttpFoundation\Request $request, \Symfony\Component\HttpFoundation\Response $response, \Serphlet\Config\ServletContext $context) { // Determine the type $statusCode = $response->getStatus(); $exception = $request->getAttribute(\Serphlet\Globals::EXCEPTION_ATTR); // Consider only getting involved if the response is marked as an error if (!$response->isError()) { return; } // Handle the status if (!$response->isCommitted()) { $response->resetBuffer(); if ($statusCode >= 400) { $request->setAttribute(\Serphlet\Globals::EXCEPTION_PAGE_ATTR, $request->getRequestURI()); $request->setAttribute(\Serphlet\Globals::STATUS_CODE_ATTR, $statusCode); $errorMessage = $request->getAttribute(\Serphlet\Globals::ERROR_MESSAGE_ATTR); if (!trim($errorMessage)) { $request->setAttribute(\Serphlet\Globals::ERROR_MESSAGE_ATTR, $response->getMessage()); } $errorPage = $context->findErrorPage($statusCode); if (!empty($errorPage)) { self::serveErrorPage($request, $response, $context, $errorPage); } else { self::serveDefaultErrorPage($request, $response, $context); } } else { // Errors below this status don't have response contents } } }
public function __invoke(Request $request) { if ($this->service->delete($request->getRequestURI()) === false) { throw new ServiceUnavailableHttpException(null, "Failed to delete resource"); } return Response::create("", Response::HTTP_NO_CONTENT); }
/** * Dispatch url * * @param string $request */ public function dispatchUrl(Request $request) { $method = $request->getMethod(); $requestUri = $request->getRequestURI(); $uri = rawurldecode(parse_url($requestUri, PHP_URL_PATH)); $routeInfo = $this->dispatcher->dispatch($method, $uri); return $routeInfo; }
private function _is_logged_in(Request $request, Response $response) { session_start(); if (!session('user_id')) { session_destroy(); $response->setStatusCode(302); $response->headers->set('Location', '/login?return_to=' . $request->getRequestURI()); return false; } else { return true; } }
/** * Identify and return the path component (from the request URI) that * we will use to select a \Phruts\Config\ActionConfig to dispatch with. * * If no such path can be identified, create an error response * and return null. * * @param \Symfony\Component\HttpFoundation\Request $request The kernel request we are * processing * @param \Symfony\Component\HttpFoundation\Response $response The kernel response we are * creating * @return string */ protected function processPath(\Symfony\Component\HttpFoundation\Request $request, \Symfony\Component\HttpFoundation\Response $response) { // For prefix matching, match on the path info (if any) $path = (string) $request->attributes->get(self::INCLUDE_PATH_INFO); if ($path == null) { $path = $request->getPathInfo(); } // Always have a forward slash in the path if (substr($path, 0, 1) !== '/') { $path = '/' . $path; } // For extension matching, strip the module prefix and extension $prefix = $this->moduleConfig->getPrefix(); if (!empty($prefix)) { if (!preg_match('#^/?' . $prefix . '/.*#', $path)) { $msg = $this->getInternal()->getMessage(null, "processPath", $request->getRequestURI()); if (!empty($this->log)) { $this->log->error($msg); } throw new BadRequestHttpException($msg); } // Strip module $path = preg_replace('#^/?' . $prefix . '#', '', $path); } return $path; }