Replaces all possibly existing HTTP headers with the ones specified
public setHeaders ( |
||
$headers | ||
return | void |
/** * Just return the processed value * * @return mixed */ public function evaluate() { $httpResponse = new Response(); $httpResponse->setStatus($this->getStatusCode()); $httpResponse->setHeaders(new Headers()); foreach ($this->getHeaders() as $name => $value) { $httpResponse->setHeader($name, $value); } return implode("\r\n", $httpResponse->renderHeaders()) . "\r\n\r\n"; }
/** * @param Request $httpRequest * @param RedirectInterface $redirect * @return Response|null */ protected function buildResponse(Request $httpRequest, RedirectInterface $redirect) { if (headers_sent() === true && FLOW_SAPITYPE !== 'CLI') { return null; } $response = new Response(); $statusCode = $redirect->getStatusCode(); $response->setStatus($statusCode); if ($statusCode >= 300 && $statusCode <= 399) { $location = $redirect->getTargetUriPath(); if (parse_url($location, PHP_URL_SCHEME) === null) { $location = $httpRequest->getBaseUri() . $location; } $response->setHeaders(new Headers(['Location' => $location, 'Cache-Control' => 'no-store, no-cache, must-revalidate, post-check=0, pre-check=0', 'Expires' => 'Sat, 26 Jul 1997 05:00:00 GMT'])); } elseif ($statusCode >= 400 && $statusCode <= 599) { $exception = new Exception(); $exception->setStatusCode($statusCode); throw $exception; } return $response; }