Exemplo n.º 1
0
 public function transformResponseToMessage(Response $response)
 {
     $listeners = $this->netstringEncoder->encode(implode(' ', $response->getListeners()));
     $content = $response->getContent();
     $headers = $response->getHeaders();
     // Ensure content-length is set, otherwise Mongrel2 will ignore our request.
     if (!isset($headers['content-length'][0])) {
         $headers['content-length'][] = strlen($content);
     }
     $headersString = '';
     foreach ($headers as $name => $values) {
         $name = implode('-', array_map('ucfirst', explode('-', $name)));
         foreach ($values as $value) {
             $headersString .= sprintf("%s %s\r\n", $name . ':', $value);
         }
     }
     // Building our own HTTP Response.
     $message = sprintf("%s %s HTTP/%s %d %s\r\n%s\r\n%s\r\n", $response->getUuid(), $listeners, $response->getHttpVersion(), $response->getStatusCode(), $response->getReasonPhrase(), $headersString, $content);
     return $message;
 }