public static function getUriFromGlobals(array $serverParams): UriInterface
    {
        $uri = new Uri('');

        $uri = $uri->withScheme(isset($serverParams['HTTPS']) && $serverParams['HTTPS'] !== 'off' ? 'https' : 'http');

        $hasPort = false;
        if (isset($serverParams['HTTP_HOST'])) {
            $hostHeaderParts = explode(':', $serverParams['HTTP_HOST'], 2);
            $uri = $uri->withHost($hostHeaderParts[0]);
            if (count($hostHeaderParts) > 1) {
                $hasPort = true;
                $uri = $uri->withPort((int) $hostHeaderParts[1]);
            }
        } elseif (isset($serverParams['SERVER_NAME'])) {
            $uri = $uri->withHost($serverParams['SERVER_NAME']);
        } elseif (isset($serverParams['SERVER_ADDR'])) {
            $uri = $uri->withHost($serverParams['SERVER_ADDR']);
        }

        if (!$hasPort && isset($serverParams['SERVER_PORT'])) {
            $uri = $uri->withPort($serverParams['SERVER_PORT']);
        }

        $hasQuery = false;
        if (isset($serverParams['REQUEST_URI'])) {
            $requestUriParts = explode('?', $serverParams['REQUEST_URI'], 2);
            $uri = $uri->withPath($requestUriParts[0]);
            if (count($requestUriParts) > 1) {
                $hasQuery = true;
                $uri = $uri->withQuery($requestUriParts[1]);
            }
        }

        if (!$hasQuery && isset($serverParams['QUERY_STRING'])) {
            $uri = $uri->withQuery($serverParams['QUERY_STRING']);
        }

        return $uri;
    }
public static function getUriFromGlobals(array $serverParams): UriInterface
    {
        $uri = new Uri('');

        $uri = $uri->withScheme(isset($serverParams['HTTPS']) && $serverParams['HTTPS'] !== 'off' ? 'https' : 'http');

        $hasPort = false;
        if (isset($serverParams['HTTP_HOST'])) {
            $hostHeaderParts = explode(':', $serverParams['HTTP_HOST'], 2);
            $uri = $uri->withHost($hostHeaderParts[0]);
            if (count($hostHeaderParts) > 1) {
                $hasPort = true;
                $uri = $uri->withPort((int) $hostHeaderParts[1]);
            }
        } elseif (isset($serverParams['SERVER_NAME'])) {
            $uri = $uri->withHost($serverParams['SERVER_NAME']);
        } elseif (isset($serverParams['SERVER_ADDR'])) {
            $uri = $uri->withHost($serverParams['SERVER_ADDR']);
        }

        if (!$hasPort && isset($serverParams['SERVER_PORT'])) {
            $uri = $uri->withPort($serverParams['SERVER_PORT']);
        }

        $hasQuery = false;
        if (isset($serverParams['REQUEST_URI'])) {
            $requestUriParts = explode('?', $serverParams['REQUEST_URI'], 2);
            $uri = $uri->withPath($requestUriParts[0]);
            if (count($requestUriParts) > 1) {
                $hasQuery = true;
                $uri = $uri->withQuery($requestUriParts[1]);
            }
        }

        if (!$hasQuery && isset($serverParams['QUERY_STRING'])) {
            $uri = $uri->withQuery($serverParams['QUERY_STRING']);
        }

        return $uri;
    }
public static function getUriFromGlobals ( array $ serverParams ) : UriInterface { $ uri = new Uri ( '' ) ; $ uri = $ uri -> withScheme ( isset ( $ serverParams [ 'HTTPS' ] ) && $ serverParams [ 'HTTPS' ] !== 'off' ? 'https' : 'http' ) ; $ hasPort = false ; if ( isset ( $ serverParams [ 'HTTP_HOST' ] ) ) { $ hostHeaderParts = explode ( ':' , $ serverParams [ 'HTTP_HOST' ] , 2 ) ; $ uri = $ uri -> withHost ( $ hostHeaderParts [ 0 ] ) ; if ( count ( $ hostHeaderParts ) > 1 ) { $ hasPort = true ; $ uri = $ uri -> withPort ( ( int ) $ hostHeaderParts [ 1 ] ) ; } } elseif ( isset ( $ serverParams [ 'SERVER_NAME' ] ) ) { $ uri = $ uri -> withHost ( $ serverParams [ 'SERVER_NAME' ] ) ; } elseif ( isset ( $ serverParams [ 'SERVER_ADDR' ] ) ) { $ uri = $ uri -> withHost ( $ serverParams [ 'SERVER_ADDR' ] ) ; } if ( ! $ hasPort && isset ( $ serverParams [ 'SERVER_PORT' ] ) ) { $ uri = $ uri -> withPort ( $ serverParams [ 'SERVER_PORT' ] ) ; } $ hasQuery = false ; if ( isset ( $ serverParams [ 'REQUEST_URI' ] ) ) { $ requestUriParts = explode ( '?' , $ serverParams [ 'REQUEST_URI' ] , 2 ) ; $ uri = $ uri -> withPath ( $ requestUriParts [ 0 ] ) ; if ( count ( $ requestUriParts ) > 1 ) { $ hasQuery = true ; $ uri = $ uri -> withQuery ( $ requestUriParts [ 1 ] ) ; } } if ( ! $ hasQuery && isset ( $ serverParams [ 'QUERY_STRING' ] ) ) { $ uri = $ uri -> withQuery ( $ serverParams [ 'QUERY_STRING' ] ) ; } return $ uri ; }
Get a Uri populated with values from server params.
@param array $serverParams
@return UriInterface
Get a Uri populated with values from server params .