Ejemplo n.º 1
0
 /**
  * @param Psr\Http\Message\MessageInterface $message
  * 
  * @return string
  */
 private static function printHeaders(MessageInterface $message)
 {
     $headers = [];
     foreach ($message->getHeaders() as $name => $values) {
         $headers[] = $name . ': ' . implode(', ', $values);
     }
     return implode("\n", $headers);
 }
Ejemplo n.º 2
0
 /**
  * Store a message in the cache.
  * 
  * @param string           $key     The message key
  * @param MessageInterface $message
  */
 private function saveIntoCache($key, MessageInterface $message)
 {
     if ($this->cache) {
         $item = $this->cache->getItem($key);
         $item->set([$message->getHeaders(), (string) $message->getBody()]);
         $this->cache->save($item);
     }
 }
Ejemplo n.º 3
0
 public function validateHeaders(MessageInterface $message, MessageDefinition $definition)
 {
     if ($definition->hasHeadersSchema()) {
         // Transform each header values into a string
         $headers = array_map(function (array $values) {
             return implode(', ', $values);
         }, $message->getHeaders());
         $this->validate((object) array_change_key_case($headers, CASE_LOWER), $definition->getHeadersSchema(), 'header');
     }
 }
Ejemplo n.º 4
0
/**
 * Returns the string representation of an HTTP message.
 *
 * @param MessageInterface $message Message to convert to a string.
 *
 * @return string
 */
function str(MessageInterface $message)
{
    if ($message instanceof RequestInterface) {
        $msg = trim($message->getMethod() . ' ' . $message->getRequestTarget()) . ' HTTP/' . $message->getProtocolVersion();
        if (!$message->hasHeader('host')) {
            $msg .= "\r\nHost: " . $message->getUri()->getHost();
        }
    } elseif ($message instanceof ResponseInterface) {
        $msg = 'HTTP/' . $message->getProtocolVersion() . ' ' . $message->getStatusCode() . ' ' . $message->getReasonPhrase();
    } else {
        throw new \InvalidArgumentException('Unknown message type');
    }
    foreach ($message->getHeaders() as $name => $values) {
        $msg .= "\r\n{$name}: " . implode(', ', $values);
    }
    return "{$msg}\r\n\r\n" . $message->getBody();
}
Ejemplo n.º 5
0
 public function str(MessageInterface $message)
 {
     if ($message instanceof RequestInterface) {
         $msg = trim($message->getMethod() . ' ' . $message->getRequestTarget()) . ' HTTP/' . $message->getProtocolVersion();
         if (!$message->hasHeader('host')) {
             $msg .= "\r\nHost: " . $message->getUri()->getHost();
         }
     } elseif ($message instanceof ResponseInterface) {
         $msg = 'HTTP/' . $message->getProtocolVersion() . ' ' . $message->getStatusCode() . ' ' . $message->getReasonPhrase();
     }
     foreach ($message->getHeaders() as $name => $values) {
         $msg .= "\r\n{$name}: " . implode(', ', $values);
     }
     if ($message->getBody()->getSize() < ini_get('memory_limit')) {
         $msg .= "\r\n\r\n" . $message->getBody();
     }
     return $msg;
 }
Ejemplo n.º 6
0
 /**
  * Marshal the host and port from HTTP headers and/or the PHP environment
  *
  * @param array $server
  * @param MessageInterface $request
  * @return array Array with two members, host and port, at indices 0 and 1, respectively
  * @deprecated as of 0.7.0; use marshalHostAndPortFromHeaders() instead.
  */
 public static function marshalHostAndPort(stdClass $accumulator, array $server, MessageInterface $request)
 {
     return self::marshalHostAndPortFromHeaders($accumulator, $server, $request->getHeaders());
 }
Ejemplo n.º 7
0
 /**
  * Get body with headers.
  *
  * @param MessageInterface $stream
  *
  * @return string
  */
 public function getBodyWithHeaders(MessageInterface $stream)
 {
     $result = sprintf('%s%s%s', $this->getString($stream->getHeaders()), PHP_EOL, $stream->getBody()->getContents());
     return $result;
 }
Ejemplo n.º 8
0
 private function headers(MessageInterface $message)
 {
     $result = '';
     foreach ($message->getHeaders() as $name => $values) {
         $result .= $name . ': ' . implode(', ', $values) . "\r\n";
     }
     return trim($result);
 }
Ejemplo n.º 9
0
 /**
  * {@inheritdoc}
  */
 public function getHeaders()
 {
     return $this->message->getHeaders();
 }