request; } public function __construct( private Request $request, ) { } /** * @param \Sabre\HTTP\Response $response * @return void */ public function sendResponse(Response $response): void { // we need to copy the body since we close the source stream $copyStream = fopen('php://temp', 'r+'); if (is_string($response->getBody())) { fwrite($copyStream, $response->getBody()); } elseif (is_resource($response->getBody())) { stream_copy_to_stream($response->getBody(), $copyStream); } rewind($copyStream); $this->response = new Response($response->getStatus(), $response->getHeaders(), $copyStream); } /** * @return \Sabre\HTTP\Response */ public function getResponse() { return $this->response; } }