Completed
Pull Request — master (#12)
by
unknown
01:57
created

Normalizer::normalizePath()   A

Complexity

Conditions 5
Paths 12

Size

Total Lines 22

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 10
CRAP Score 5.0187

Importance

Changes 0
Metric Value
dl 0
loc 22
ccs 10
cts 11
cp 0.9091
rs 9.2568
c 0
b 0
f 0
cc 5
nc 12
nop 1
crap 5.0187
1
<?php
2
namespace Aoe\Asdis\System\Uri;
3
4
class Normalizer
5
{
6
    /**
7
     * Makes a path relative to the webroot.
8
     *
9
     * @param string $path The path.
10
     * @return string
11
     */
12 3
    public function normalizePath($path)
13
    {
14
        // Fix for wildcard protocol URLs, as parse_url (until PHP 5.4.7) requires the protocol to be set
15
        // @see http://www.php.net/manual/en/function.parse-url.php
16 3
        if ('//' === substr($path, 0, 2)) {
17 1
            $path = 'http:' . $path;
18
        }
19
20 3
        $pathInfos = parse_url($path);
21
22 3
        if (isset($pathInfos['path'])) {
23 3
            $path = $pathInfos['path'];
24 3
            if (isset($pathInfos['query'])) {
25
                $path .= '?' . $pathInfos['query'];
26
            }
27
        }
28
29 3
        if (strpos($path, '/') === 0) {
30 1
            $path = substr($path, 1);
31
        }
32 3
        return $path;
33
    }
34
}