Decorates the PSR incoming request interface to add the ability to manipulate arbitrary instance members.
Inheritance: implements Psr\Http\Message\ServerRequestInterface
Example #1
0
 /**
  * Create a 404 status in the response
  *
  * @param Http\Request $request Request instance.
  * @param Http\Response $response Response instance.
  * @return Http\Response
  */
 private function create404(Http\Request $request, Http\Response $response)
 {
     $response = $response->withStatus(404);
     $originalRequest = $request->getOriginalRequest();
     $uri = $originalRequest->getUri();
     $escaper = new Escaper();
     $message = sprintf("Cannot %s %s\n", $escaper->escapeHtml($request->getMethod()), $escaper->escapeHtml((string) $uri));
     return $response->end($message);
 }
Example #2
0
 public function testDecoratorProxiesToAllMethods()
 {
     $stream = $this->getMock('Psr\\Http\\Message\\StreamInterface');
     $psrRequest = new PsrRequest([], [], 'http://example.com', 'POST', $stream, ['Accept' => 'application/xml', 'X-URL' => 'http://example.com/foo']);
     $request = new Request($psrRequest);
     $this->assertEquals('1.1', $request->getProtocolVersion());
     $this->assertSame($stream, $request->getBody());
     $this->assertSame($psrRequest->getHeaders(), $request->getHeaders());
     $this->assertEquals($psrRequest->getRequestTarget(), $request->getRequestTarget());
 }
Example #3
0
 /**
  * Strip the route from the request path
  *
  * @param Http\Request $request
  * @param string $route
  * @return Http\Request
  */
 private function stripRouteFromPath(Http\Request $request, $route)
 {
     $this->removed = $route;
     $uri = $request->getUri();
     $path = $this->getTruncatedPath($route, $uri->getPath());
     $new = $uri->withPath($path);
     // Root path of route is treated differently
     if ($path === '/' && '/' === substr($uri->getPath(), -1)) {
         $this->removed .= '/';
     }
     return $request->withUri($new);
 }