Phly\Http\Request\Serializer::toString PHP Method

toString() public static method

Serialize a request message to a string.
public static toString ( Psr\Http\Message\RequestInterface $request ) : string
$request Psr\Http\Message\RequestInterface
return string
    public static function toString(RequestInterface $request)
    {
        $headers = self::serializeHeaders($request->getHeaders());
        $body = (string) $request->getBody();
        $format = '%s %s HTTP/%s%s%s';
        if (!empty($headers)) {
            $headers = "\r\n" . $headers;
        }
        if (!empty($body)) {
            $headers .= "\r\n\r\n";
        }
        return sprintf($format, $request->getMethod(), $request->getRequestTarget(), $request->getProtocolVersion(), $headers, $body);
    }

Usage Example

Beispiel #1
0
 public function testSerializesMultipleHeadersCorrectly()
 {
     $request = (new Request())->withMethod('GET')->withUri(new Uri('http://example.com/foo/bar?baz=bat'))->withAddedHeader('X-Foo-Bar', 'Baz')->withAddedHeader('X-Foo-Bar', 'Bat');
     $message = Serializer::toString($request);
     $this->assertContains("X-Foo-Bar: Baz", $message);
     $this->assertContains("X-Foo-Bar: Bat", $message);
 }