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()); }
public function testGetLanguage() { $this->assertEquals(null, $this->request->getLanguage()); $uri = new Uri('http://server.loc'); $stream = fopen('php://temp', 'wb+'); $streamObject = new Stream($stream); $request = new ServerRequest('GET', $uri, $streamObject); $this->assertEquals('en', $request->getLanguage(array('en', 'uk', 'ru'))); $request2 = $request->withHeader('Accept-Language', 'uk,ru;q=0.8,en-US;q=0.6,en;q=0.4'); $this->assertEquals('uk', $request2->getLanguage()); $request2 = $request->withHeader('Accept-Language', 'uk,ru;q=0.8,en-US;q=0.6,en;q=0.4'); $this->assertEquals('de', $request2->getLanguage(array('de', 'pl'))); $this->assertEquals('en', $request2->getLanguage(array('de', 'pl', 'en'))); }
/** * 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; }