示例#1
0
 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, ...
 }
示例#3
0
 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;
 }