Passed
Push — patch-url-as-string ( a9f19b )
by Charis
04:09 queued 02:03
created

createUriFromString()   C

Complexity

Conditions 9
Paths 256

Size

Total Lines 20
Code Lines 18

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 9
eloc 18
nc 256
nop 1
dl 0
loc 20
rs 6.5222
c 0
b 0
f 0
1
<?php
2
3
namespace One;
4
5
/**
6
 * createUriFromString
7
 *
8
 * @param string $uri
9
 * @return \Psr\Http\Message\UriInterface
10
 */
11
function createUriFromString($uri)
12
{
13
    $parts = parse_url($uri);
14
    $scheme = isset($parts['scheme']) ? $parts['scheme'] : '';
15
    $user = isset($parts['user']) ? $parts['user'] : '';
16
    $pass = isset($parts['pass']) ? $parts['pass'] : '';
17
    $host = isset($parts['host']) ? $parts['host'] : '';
18
    $port = isset($parts['port']) ? $parts['port'] : null;
19
    $path = isset($parts['path']) ? $parts['path'] : '';
20
    $query = isset($parts['query']) ? $parts['query'] : '';
21
    $fragment = isset($parts['fragment']) ? $parts['fragment'] : '';
22
    return new Uri(
23
        $scheme,
24
        $host,
25
        $port,
26
        $path,
27
        $query,
28
        $fragment,
29
        $user,
30
        $pass
31
    );
32
}
33
34
/**
35
 * createuriFromServer
36
 *
37
 * @return \Psr\Http\Message\UriInterface
38
 */
39
40
function createuriFromServer()
41
{
42
    $scheme = isset($_SERVER['HTTPS']) ? 'https://' : 'http://';
43
    $host = !empty($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME'];
44
    $port = empty($_SERVER['SERVER_PORT']) ? $_SERVER['SERVER_PORT'] : null;
45
    $path = (string) parse_url('http://www.example.com/' . $_SERVER['REQUEST_URI'], PHP_URL_PATH);
46
    $query = empty($_SERVER['QUERY_STRING']) ? parse_url('http://example.com' . $_SERVER['REQUEST_URI'], PHP_URL_QUERY) : $_SERVER['QUERY_STRING'];
47
    $fragment = '';
48
    $user = !empty($_SERVER['PHP_AUTH_USER']) ? $_SERVER['PHP_AUTH_USER'] : '';
49
    $password = !empty($_SERVER['PHP_AUTH_PW']) ? $_SERVER['PHP_AUTH_PW'] : '';
50
    if (empty($user) && empty($password) && !empty($_SERVER['HTTP_AUTHORIZATION'])) {
51
        list($user, $password) = explode(':', base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6)));
52
    }
53
54
    return new Uri(
55
        $scheme,
56
        $host,
57
        $port,
58
        $path,
59
        $query,
60
        $fragment,
61
        $user,
62
        $password
63
    );
64
}
65