*/ private array $headers; private int $code; /** * @param int $code * @param array $headers */ public function __construct(int $code, array $headers) { $this->code = $code; $this->headers = $headers; } public function getCode(): int { return $this->code; } /** * @return array */ public function getHeaders(): array { return $this->headers; } public static function fromCode(int $code): HttpResponse { return new HttpResponse($code, []); } public static function redirect(string $url, int $code = HttpCodes::FOUND): HttpResponse { if ($code < 300 || $code >= 400) { throw new \InvalidArgumentException("given code is not a redirection http code"); } return new HttpResponse($code, ["Location" => $url]); } }