public static function create(Uri $uri, $method = 'GET', array $arguments = [], array $files = [], array $server = [])
    {
        $get = UriHelper::parseQueryIntoArguments($uri);
        $post = $arguments;

        $isDefaultPort = $uri->getScheme() === 'https' ? ($uri->getPort() === 443) : ($uri->getPort() === 80);

        $defaultServerEnvironment = [
            'HTTP_USER_AGENT' => 'Flow/' . FLOW_VERSION_BRANCH . '.x',
            'HTTP_HOST' => $uri->getHost() . ($isDefaultPort !== true && $uri->getPort() !== null ? ':' . $uri->getPort() : ''),
            'SERVER_NAME' => $uri->getHost(),
            'SERVER_ADDR' => '127.0.0.1',
            'SERVER_PORT' => $uri->getPort() ?: 80,
            'REMOTE_ADDR' => '127.0.0.1',
            'SCRIPT_FILENAME' => FLOW_PATH_WEB . 'index.php',
            'SERVER_PROTOCOL' => 'HTTP/1.1',
            'SCRIPT_NAME' => '/index.php',
            'PHP_SELF' => '/index.php',
            'REQUEST_TIME' => time()
        ];

        if ($uri->getScheme() === 'https') {
            $defaultServerEnvironment['HTTPS'] = 'on';
            $defaultServerEnvironment['SERVER_PORT'] = $uri->getPort() ?: 443;
        }

        if (in_array($method, ['POST', 'PUT', 'DELETE'])) {
            $defaultServerEnvironment['HTTP_CONTENT_TYPE'] = 'application/x-www-form-urlencoded';
        }

        $query = (string)$uri->getQuery();
        $fragment = $uri->getFragment();
        $overrideValues = [
            'REQUEST_URI' => $uri->getPath() . ($query !== '' ? '?' . $query : '') . ($fragment !== '' ? '#' . $fragment : ''),
            'REQUEST_METHOD' => $method,
            'QUERY_STRING' => $query
        ];
        $server = array_replace($defaultServerEnvironment, $server, $overrideValues);

        return new static($get, $post, $files, $server);
    }
public static function create(Uri $uri, $method = 'GET', array $arguments = [], array $files = [], array $server = [])
    {
        $get = UriHelper::parseQueryIntoArguments($uri);
        $post = $arguments;

        $isDefaultPort = $uri->getScheme() === 'https' ? ($uri->getPort() === 443) : ($uri->getPort() === 80);

        $defaultServerEnvironment = [
            'HTTP_USER_AGENT' => 'Flow/' . FLOW_VERSION_BRANCH . '.x',
            'HTTP_HOST' => $uri->getHost() . ($isDefaultPort !== true && $uri->getPort() !== null ? ':' . $uri->getPort() : ''),
            'SERVER_NAME' => $uri->getHost(),
            'SERVER_ADDR' => '127.0.0.1',
            'SERVER_PORT' => $uri->getPort() ?: 80,
            'REMOTE_ADDR' => '127.0.0.1',
            'SCRIPT_FILENAME' => FLOW_PATH_WEB . 'index.php',
            'SERVER_PROTOCOL' => 'HTTP/1.1',
            'SCRIPT_NAME' => '/index.php',
            'PHP_SELF' => '/index.php',
            'REQUEST_TIME' => time()
        ];

        if ($uri->getScheme() === 'https') {
            $defaultServerEnvironment['HTTPS'] = 'on';
            $defaultServerEnvironment['SERVER_PORT'] = $uri->getPort() ?: 443;
        }

        if (in_array($method, ['POST', 'PUT', 'DELETE'])) {
            $defaultServerEnvironment['HTTP_CONTENT_TYPE'] = 'application/x-www-form-urlencoded';
        }

        $query = (string)$uri->getQuery();
        $fragment = $uri->getFragment();
        $overrideValues = [
            'REQUEST_URI' => $uri->getPath() . ($query !== '' ? '?' . $query : '') . ($fragment !== '' ? '#' . $fragment : ''),
            'REQUEST_METHOD' => $method,
            'QUERY_STRING' => $query
        ];
        $server = array_replace($defaultServerEnvironment, $server, $overrideValues);

        return new static($get, $post, $files, $server);
    }
public static function create ( Uri $ uri , $ method = 'GET' , array $ arguments = [ ] , array $ files = [ ] , array $ server = [ ] ) { $ get = UriHelper :: parseQueryIntoArguments ( $ uri ) ; $ post = $ arguments ; $ isDefaultPort = $ uri -> getScheme ( ) === 'https' ? ( $ uri -> getPort ( ) === 443 ) : ( $ uri -> getPort ( ) === 80 ) ; $ defaultServerEnvironment = [ 'HTTP_USER_AGENT' => 'Flow/' . FLOW_VERSION_BRANCH . '.x' , 'HTTP_HOST' => $ uri -> getHost ( ) . ( $ isDefaultPort !== true && $ uri -> getPort ( ) !== null ? ':' . $ uri -> getPort ( ) : '' ) , 'SERVER_NAME' => $ uri -> getHost ( ) , 'SERVER_ADDR' => '127.0.0.1' , 'SERVER_PORT' => $ uri -> getPort ( ) ? : 80 , 'REMOTE_ADDR' => '127.0.0.1' , 'SCRIPT_FILENAME' => FLOW_PATH_WEB . 'index.php' , 'SERVER_PROTOCOL' => 'HTTP/1.1' , 'SCRIPT_NAME' => '/index.php' , 'PHP_SELF' => '/index.php' , 'REQUEST_TIME' => time ( ) ] ; if ( $ uri -> getScheme ( ) === 'https' ) { $ defaultServerEnvironment [ 'HTTPS' ] = 'on' ; $ defaultServerEnvironment [ 'SERVER_PORT' ] = $ uri -> getPort ( ) ? : 443 ; } if ( in_array ( $ method , [ 'POST' , 'PUT' , 'DELETE' ] ) ) { $ defaultServerEnvironment [ 'HTTP_CONTENT_TYPE' ] = 'application/x-www-form-urlencoded' ; } $ query = ( string ) $ uri -> getQuery ( ) ; $ fragment = $ uri -> getFragment ( ) ; $ overrideValues = [ 'REQUEST_URI' => $ uri -> getPath ( ) . ( $ query !== '' ? '?' . $ query : '' ) . ( $ fragment !== '' ? '#' . $ fragment : '' ) , 'REQUEST_METHOD' => $ method , 'QUERY_STRING' => $ query ] ; $ server = array_replace ( $ defaultServerEnvironment , $ server , $ overrideValues ) ; return new static ( $ get , $ post , $ files , $ server ) ; }
Creates a new Request object from the given data.

@param Uri $uri The request URI
@param string $method Request method, for example "GET"
@param array $arguments Arguments to send in the request body
@param array $files
@param array $server
@return Request
@api
Creates a new Request object from the given data .