Aerys\Server::initializeRequest PHP Method

initializeRequest() private method

private initializeRequest ( Client $client, array $parseResult ) : InternalRequest
$client Client
$parseResult array
return InternalRequest
    private function initializeRequest(Client $client, array $parseResult) : InternalRequest
    {
        $trace = $parseResult["trace"];
        $protocol = empty($parseResult["protocol"]) ? "1.0" : $parseResult["protocol"];
        $method = empty($parseResult["method"]) ? "GET" : $parseResult["method"];
        if ($this->options->normalizeMethodCase) {
            $method = strtoupper($method);
        }
        $uri = empty($parseResult["uri"]) ? "/" : $parseResult["uri"];
        $headers = empty($parseResult["headers"]) ? [] : $parseResult["headers"];
        assert($this->logDebug(sprintf("%s %s HTTP/%s @ %s:%s%s", $method, $uri, $protocol, $client->clientAddr, $client->clientPort, empty($parseResult["server_push"]) ? "" : " (server-push via {$parseResult["server_push"]})")));
        if (isset($client->remainingKeepAlives)) {
            $client->remainingKeepAlives--;
        }
        $ireq = new InternalRequest();
        $ireq->client = $client;
        $ireq->time = $this->ticker->currentTime;
        $ireq->httpDate = $this->ticker->currentHttpDate;
        $ireq->locals = [];
        $ireq->trace = $trace;
        $ireq->protocol = $protocol;
        $ireq->method = $method;
        $ireq->headers = $headers;
        $ireq->body = $this->nullBody;
        $ireq->streamId = $parseResult["id"];
        if (empty($ireq->headers["cookie"])) {
            $ireq->cookies = [];
        } else {
            // @TODO delay initialization
            $ireq->cookies = array_merge(...array_map('\\Aerys\\parseCookie', $ireq->headers["cookie"]));
        }
        $ireq->uriRaw = $uri;
        if (stripos($uri, "http://") === 0 || stripos($uri, "https://") === 0) {
            $uri = parse_url($uri);
            $ireq->uriHost = $uri["host"];
            $ireq->uriPort = isset($uri["port"]) ? (int) $uri["port"] : $client->serverPort;
            $ireq->uriPath = \rawurldecode($uri["path"]);
            $ireq->uriQuery = $uri["query"] ?? "";
            $ireq->uri = isset($uri["query"]) ? "{$ireq->uriPath}?{$uri['query']}" : $ireq->uriPath;
        } else {
            if ($qPos = strpos($uri, '?')) {
                $ireq->uriQuery = substr($uri, $qPos + 1);
                $ireq->uriPath = \rawurldecode(substr($uri, 0, $qPos));
                $ireq->uri = "{$ireq->uriPath}?{$ireq->uriQuery}";
            } else {
                $ireq->uri = $ireq->uriPath = \rawurldecode($uri);
                $ireq->uriQuery = "";
            }
            $host = $ireq->headers["host"][0] ?? "";
            if (($colon = strrpos($host, ":")) !== false) {
                $ireq->uriHost = substr($host, 0, $colon);
                $ireq->uriPort = (int) substr($host, $colon + 1);
            } else {
                $ireq->uriHost = $host;
                $ireq->uriPort = $client->serverPort;
            }
        }
        return $ireq;
    }