public function testSetRequest() { $this->provider->register('request', function () { $request = ServerRequest::createFromGlobal(); return $request->withAttribute('a', 123); }); $this->assertEquals(123, $this->provider->getRequest()->getAttribute('a')); $newRequest = $request = ServerRequest::createFromGlobal(); $newRequest = $newRequest->withAttribute('b', 456); $this->provider->setRequest($newRequest); $this->assertEquals($newRequest, $this->provider->getRequest()); }
protected function getFromGlobal() { // 'https://*****:*****@some-server.com/foo/bar?foo=bar' $_SERVER = ['REQUEST_METHOD' => 'POST', 'HTTPS' => 'on', 'PHP_AUTH_USER' => 'user1', 'PHP_AUTH_PW' => 'pass1', 'REQUEST_URI' => '/foo/bar?foo=bar', 'HTTP_HOST' => 'some-server.com', 'SCRIPT_NAME' => 'index.php']; $_FILES = ['myfile' => ['name' => 'someimage.jpg', 'type' => 'image/jpeg', 'tmp_name' => '/tmp/phpM0Jr9t', 'error' => 0, 'size' => 190414]]; $_POST = ['a' => 'b']; return ServerRequest::createFromGlobal(); }
/** * Get request * * @return \Psr\Http\Message\ServerRequestInterface * @throws \RuntimeException */ public function getRequest() { if ($this->request) { return $this->request; } if ($this->has('request')) { $this->request = $this->get('request'); if (!$this->request instanceof ServerRequestInterface) { throw new \RuntimeException('The Request service must return an instance of \\Psr\\Http\\Message\\ServerRequestInterface.'); } } else { $this->request = ServerRequest::createFromGlobal(); } return $this->request; }