Decorates the PSR incoming request interface to add the ability to
manipulate arbitrary instance members.
/** * Middleware listener/ * * @param $class * @param Request $request * @param Response $response * * @internal param Context $context */ function middlewareSnooper($class, $request, $response) { static $count = 0; $this->kernel->context()->set('application.spy_middleware.fired', ++$count); $this->kernel->context()->set('application.spy_middleware.request_query', $request->getUri()); $et = elapsed_time_since_request(); $class = (new \ReflectionClass($class))->getShortName(); $response->getBody()->write("<div><b>{$class}</b> middleware event fired @<b>{$et}</b></div>" . PHP_EOL); }
public function testDecoratorProxiesToAllMethods() { $stream = $this->getMockBuilder('Psr\\Http\\Message\\StreamInterface')->getMock(); $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()); }
public function testInvalidIdRequest() { $request = $this->request->withUri(new Uri('http://localhost/api/ping/one'))->withMethod('GET'); /** @var \Zend\Expressive\Router\RouteResult $result */ $result = $this->router->match($request); $this->assertTrue($result->isFailure()); }
/** * @param ServerRequestInterface $request * @param RouterInterface $router */ public function __construct(ServerRequestInterface $request, RouterInterface $router) { $this->request = $request; parent::__construct($this); $this->parameters = $this->parseIncomingParams(); $this->parameters = array_merge($this->parameters, $this->request->getParsedBody(), $this->getParsedAttributes($request, $router), $this->getQueryParams(), $this->request->getUploadedFiles()); $this->parsedBody = array_merge(parent::getParsedBody(), $this->parameters); }
public function testInvalidResourceException() { $request = $this->request->withUri(new Uri('http://localhost/api/ping/666'))->withMethod('GET')->withAttribute('resource', 'SomeBogusResource')->withAttribute('resourceId', 1); $apiMiddleware = new ApiMiddleware($this->container->reveal()); /** @var \Zend\Diactoros\Response\JsonResponse $response */ $response = $apiMiddleware($request, new Response()); $data = json_decode((string) $response->getBody(), true); $this->assertInstanceOf('Zend\\Diactoros\\Response\\JsonResponse', $response); $this->assertEquals(400, $response->getStatusCode()); $this->assertArrayHasKey('errors', $data); }
/** * getFileName * * @param Request $request * * @return string|null */ protected function getFileName(Request $request) { return $request->getAttribute(self::PARAM_FILE_PATH); }
/** * {@inheritDoc} */ public function withoutAttribute($attribute) { return new self($this->app, parent::withoutAttribute($attribute)); }