private function toResponse($handler, $status, Context $context) { $result = $context->value($handler, ''); $mediaType = $context->getMediaType(); $lastModified = $context->value('last-modified'); $response = Response::create('', $status); if (!$context->getRequest()->isMethod('HEAD')) { $response->setContent(is_string($result) ? $result : $this->serialize($result, $mediaType)); } Utils::setHeadersMaybe($response, ['Location' => $context->getLocation(), 'Vary' => $this->buildVaryHeader($context), 'Content-Type' => $mediaType, 'Last-Modified' => $lastModified ? Utils::httpDate($lastModified) : null, 'ETag' => $context->value('etag')]); if ($this->enableTrace) { $this->setTraceHeaders($response); } return $response; }