protected function appendParamsToUrl(string $url, array $params): string
    {
        if (empty($params['_fields'])) {
            unset($params['_fields']);
        }

        if (empty($params)) {
            return $url;
        }

        // If the _fields param is set transform it to a single string so that
        // it's not urlencoded as an array
        if (isset($params['_fields']) && \is_array($params['_fields'])) {
            $params['_fields'] = array_unique(array_merge($params['_fields'], ['id']));
            $params['_fields'] = implode(',', $params['_fields']);
        }

        // If there is no question mark in the URL we can just add the params
        // to the query string and exit early
        if (strpos($url, '?') === false) {
            return $url . '?' . http_build_query($params, '', '&');
        }

        list($path, $query) = explode('?', $url, 2);

        parse_str($query, $existingParams);

        $params = array_merge($params, $existingParams);

        return $path . '?' . http_build_query($params, '', '&');
    }
protected function appendParamsToUrl(string $url, array $params): string
    {
        if (empty($params['_fields'])) {
            unset($params['_fields']);
        }

        if (empty($params)) {
            return $url;
        }

        // If the _fields param is set transform it to a single string so that
        // it's not urlencoded as an array
        if (isset($params['_fields']) && \is_array($params['_fields'])) {
            $params['_fields'] = array_unique(array_merge($params['_fields'], ['id']));
            $params['_fields'] = implode(',', $params['_fields']);
        }

        // If there is no question mark in the URL we can just add the params
        // to the query string and exit early
        if (strpos($url, '?') === false) {
            return $url . '?' . http_build_query($params, '', '&');
        }

        list($path, $query) = explode('?', $url, 2);

        parse_str($query, $existingParams);

        $params = array_merge($params, $existingParams);

        return $path . '?' . http_build_query($params, '', '&');
    }
protected function appendParamsToUrl ( string $ url , array $ params ) : string { if ( empty ( $ params [ '_fields' ] ) ) { unset ( $ params [ '_fields' ] ) ; } if ( empty ( $ params ) ) { return $ url ; } // If the _fields param is set transform it to a single string so that // it's not urlencoded as an array if ( isset ( $ params [ '_fields' ] ) && \ is_array ( $ params [ '_fields' ] ) ) { $ params [ '_fields' ] = array_unique ( array_merge ( $ params [ '_fields' ] , [ 'id' ] ) ) ; $ params [ '_fields' ] = implode ( ',' , $ params [ '_fields' ] ) ; } // If there is no question mark in the URL we can just add the params // to the query string and exit early if ( strpos ( $ url , '?' ) === false ) { return $ url . '?' . http_build_query ( $ params , '' , '&' ) ; } list ( $ path , $ query ) = explode ( '?' , $ url , 2 ) ; parse_str ( $ query , $ existingParams ) ; $ params = array_merge ( $ params , $ existingParams ) ; return $ path . '?' . http_build_query ( $ params , '' , '&' ) ; }
Appends the given set of params to the URL.

@param string $url    The URL the params will be appended to
@param array  $params The params to append to the URL

@return string
Appends the given set of params to the URL .