public function testServerParams() { $swooleRequest = $this->createSwooleRequest(array('request_method' => 'GET', 'request_uri' => '/', 'path_info' => '/', 'request_time' => 123456789, 'server_port' => 9100, 'remote_port' => 49648, 'remote_addr' => '127.0.0.1', 'server_protocol' => 'HTTP/1.1', 'server_software' => 'swoole-http-server'), array('authorization' => 'Basic dXNlcm5hbWU6cGFzc3dvcmQ=', 'host' => 'syrma.local', 'connection' => 'close', 'user-agent' => 'curl/7.35.0', 'accept' => '*/*')); $request = $this->createTransformer()->transform($swooleRequest); $expServerParams = new ServerRequest(ServerRequestFactory::normalizeServer(array('REQUEST_METHOD' => 'GET', 'REQUEST_URI' => '/', 'PATH_INFO' => '/', 'REQUEST_TIME' => 123456789, 'SERVER_PORT' => 9100, 'REMOTE_PORT' => 49648, 'REMOTE_ADDR' => '127.0.0.1', 'SERVER_PROTOCOL' => 'HTTP/1.1', 'SERVER_SOFTWARE' => 'swoole-http-server', 'HTTP_AUTHORIZATION' => 'Basic dXNlcm5hbWU6cGFzc3dvcmQ=', 'HTTP_HOST' => 'syrma.local', 'HTTP_CONNECTION' => 'close', 'HTTP_USER-AGENT' => 'curl/7.35.0', 'HTTP_ACCEPT' => '*/*'))); $this->assertInstanceOf(ServerRequest::class, $request); /* @var ServerRequest $request */ $this->assertSame($expServerParams->getServerParams(), $request->getServerParams()); }
public function testServerParams() { $reactRequest = $this->createReactRequest('GET', '/', array(), '1.1', array('Host' => 'syrma.local', 'Connection' => 'close', 'User-Agent' => 'curl/7.35.0', 'Accept' => '*/*', 'Authorization' => 'Basic dXNlcm5hbWU6cGFzc3dvcmQ=')); $reactRequest->remoteAddress = '127.0.0.1'; $request = $this->createTransformer()->transform($reactRequest); $expServerParams = new ServerRequest(ServerRequestFactory::normalizeServer(array('REQUEST_METHOD' => 'GET', 'REQUEST_URI' => '/', 'SERVER_PROTOCOL' => 'HTTP/1.1', 'SERVER_SOFTWARE' => 'reactphp-http', 'REMOTE_ADDR' => '127.0.0.1', 'HTTP_AUTHORIZATION' => 'Basic dXNlcm5hbWU6cGFzc3dvcmQ=', 'HTTP_HOST' => 'syrma.local', 'HTTP_CONNECTION' => 'close', 'HTTP_USER-AGENT' => 'curl/7.35.0', 'HTTP_ACCEPT' => '*/*'))); $this->assertInstanceOf(ServerRequest::class, $request); /* @var ServerRequest $request */ $this->assertEquals($expServerParams->getServerParams(), $request->getServerParams()); }
public function __invoke(ServerRequestInterface $request, ResponseInterface $response, callable $next) { if ($request->getMethod() === 'POST') { $parsedBody = $this->parseBody($request->getBody()); if (is_array($parsedBody) && isset($parsedBody[self::PARAM])) { $requestToSimulate = $parsedBody[self::PARAM]; $deserializedRequest = RequestSerializer::fromString($requestToSimulate); $request = new ServerRequest($request->getServerParams(), $request->getUploadedFiles(), $deserializedRequest->getUri(), $deserializedRequest->getMethod(), $deserializedRequest->getBody(), $deserializedRequest->getHeaders()); } } $requestAsString = RequestSerializer::toString($request); $responseResult = $next($request, $response); $responseAsString = ResponseSerializer::toString($responseResult); $html = sprintf($this->getHtmlTemplate(), self::PARAM, $requestAsString, $responseAsString); return new HtmlResponse($html); }
/** * Returns the url path leading up to the current script. * Used to make the webapp portable to other locations. * * @return string uri */ public function getBaseUri(Request $request) { // Get URI from URL $uri = $request->getUri()->getPath(); // Detect and remove subfolder from URI $server = $request->getServerParams(); $scriptName = $server['SCRIPT_NAME']; if (isset($scriptName)) { $dirname = dirname($scriptName); $dirname = dirname($dirname); $len = strlen($dirname); if ($len > 0 && $dirname != '/') { $uri = substr($uri, $len); } } return $uri; }
/** * Create * * @return Request Request */ public static function fromRequest(ServerRequest $request) { return new HttpMessages_CraftRequest($request->getServerParams(), $request->getUploadedFiles(), $request->getUri(), $request->getMethod(), $request->getBody(), $request->getHeaders(), $request->getCookieParams(), $request->getQueryParams(), $request->getParsedBody(), $request->getProtocolVersion()); }