public function forceFormat($format) { $mimeType = MimeTypes::preferredMimeTypeFor($format); if ($mimeType != false) { $this->headers[self::FORMATS] = $mimeType; } else { $this->headers[self::FORMATS] = ''; } }
/** * Responsible for sending all headers in a Response. Marked final because * all headers should be bundled in Response object. * * @param Response $response * @final */ protected function sendHeadersFor(Response $response) { header('HTTP/1.1 ' . ResponseCodes::getMessageForCode($response->code)); $format = $response->request->accepts->format(); header('Content-Type: ' . MimeTypes::preferredMimeTypeFor($format)); foreach ($response->headers as $header) { header($header); } foreach ($response->getCookies() as $cookie) { if ($cookie->value == '') { setcookie($cookie->name, '', time() - 10000, $cookie->path, $cookie->domain, $cookie->secure, $cookie->httponly); } else { setcookie($cookie->name, $cookie->value, $cookie->expire, $cookie->path, $cookie->domain, $cookie->secure, $cookie->httponly); } } flush(); // TODO: Determine other headers to send here. Content-Type, Caching, Etags, ... }
protected function forceFormatFromResourceString(Request $request) { $lastPartIndex = count($request->resourceParts) - 1; if ($lastPartIndex < 0) { return $request; } $lastPart = $request->resourceParts[$lastPartIndex]; $lastDotPosition = strrpos($lastPart, Library::dotSeparator); if ($lastDotPosition !== false) { $format = substr($lastPart, $lastDotPosition + 1); if ($format !== '') { $mime = MimeTypes::preferredMimeTypeFor($format); if ($mime !== false) { $request->accepts->forceFormat($format); $request->format = $format; $request->setResource(substr($request->resource, 0, strrpos($request->resource, Library::dotSeparator))); } } } return $request; }