示例#1
0
 /**
  * Creates a new request object from the data of a reactPHP request object
  *
  * @param \React\Http\Request $request ReactPHP native request object
  *
  * @return \Slim\Http\Request
  */
 public static function createFromReactRequest(\React\Http\Request $request)
 {
     $slimHeads = new Headers();
     foreach ($request->getHeaders() as $reactHeadKey => $reactHead) {
         $slimHeads->add($reactHeadKey, $reactHead);
         if ($reactHeadKey === 'Host') {
             $host = explode(':', $reactHead);
             if (count($host) === 1) {
                 $host[1] = '80';
             }
         }
     }
     $slimUri = new Uri('http', $host[0], (int) $host[1], $request->getPath(), $request->getQuery());
     $cookies = [];
     $serverParams = $_SERVER;
     $serverParams['SERVER_PROTOCOL'] = 'HTTP/' . $request->getHttpVersion();
     $slimBody = new RequestBody();
     return new self($request->getMethod(), $slimUri, $slimHeads, $cookies, $serverParams, $slimBody);
 }
示例#2
0
 /**
  * Creates a new request object from the data of a reactPHP request object
  *
  * @param \React\Http\Request $request ReactPHP native request object
  * @param string              $body    Content of received call
  *
  * @return \Slim\Http\Request
  */
 public static function createFromReactRequest(\React\Http\Request $request, $body = '')
 {
     $slimHeads = new Headers();
     $cookies = [];
     $host = ['', 80];
     foreach ($request->getHeaders() as $reactHeadKey => $reactHead) {
         $slimHeads->add($reactHeadKey, $reactHead);
         switch ($reactHeadKey) {
             case 'Host':
                 $host = static::getHost($reactHead);
                 break;
             case 'Cookie':
                 $cookies = Cookies::parseHeader($reactHead);
                 break;
         }
     }
     $slimUri = new Uri('http', $host[0], (int) $host[1], $request->getPath(), $request->getQuery());
     $serverParams = $_SERVER;
     $serverParams['SERVER_PROTOCOL'] = 'HTTP/' . $request->getHttpVersion();
     $slimBody = static::getBody($body);
     return new Request($request->getMethod(), $slimUri, $slimHeads, $cookies, $serverParams, $slimBody);
 }
示例#3
0
 /**
  * @covers Slim\Http\Message::withoutHeader
  */
 public function testWithoutHeader()
 {
     $headers = new Headers();
     $headers->add('X-Foo', 'one');
     $headers->add('X-Bar', 'two');
     $response = new MessageStub();
     $response->headers = $headers;
     $clone = $response->withoutHeader('X-Foo');
     $shouldBe = ['X-Bar' => ['two']];
     $this->assertEquals($shouldBe, $clone->getHeaders());
 }
 public function testAddArrayValue()
 {
     $h = new Headers();
     $h->add('Foo', 'Bar');
     $h->add('Foo', ['Xyz', '123']);
     $prop = new ReflectionProperty($h, 'data');
     $prop->setAccessible(true);
     $this->assertTrue(is_array($prop->getValue($h)['foo']));
     $this->assertEquals(['Bar', 'Xyz', '123'], $prop->getValue($h)['foo']['value']);
 }