/**
  * Returns the content of the current response. File responses will be read first.
  *
  * @return string
  *
  * @throws \RuntimeException
  */
 protected function getResponseContent()
 {
     if (!static::$response instanceof Response) {
         throw new \RuntimeException('No response available');
     }
     $content = static::$response->getContent();
     if (static::$response instanceof BinaryFileResponse) {
         $content = file_get_contents(static::$response->getFile()->getPathname());
     }
     return $content;
 }
Example #2
0
 /**
  * {@inheritdoc}
  */
 public function createResponse(Response $symfonyResponse)
 {
     if ($symfonyResponse instanceof BinaryFileResponse) {
         $stream = new DiactorosStream($symfonyResponse->getFile()->getPathname(), 'r');
     } else {
         $stream = new DiactorosStream('php://temp', 'wb+');
         if ($symfonyResponse instanceof StreamedResponse) {
             ob_start(function ($buffer) use($stream) {
                 $stream->write($buffer);
                 return false;
             });
             $symfonyResponse->sendContent();
             ob_end_clean();
         } else {
             $stream->write($symfonyResponse->getContent());
         }
     }
     $headers = $symfonyResponse->headers->all();
     $cookies = $symfonyResponse->headers->getCookies();
     if (!empty($cookies)) {
         $headers['Set-Cookie'] = array();
         foreach ($cookies as $cookie) {
             $headers['Set-Cookie'][] = $cookie->__toString();
         }
     }
     $response = new DiactorosResponse($stream, $symfonyResponse->getStatusCode(), $headers);
     $protocolVersion = $symfonyResponse->getProtocolVersion();
     if ('1.1' !== $protocolVersion) {
         $response = $response->withProtocolVersion($protocolVersion);
     }
     return $response;
 }