Normalizer::normalizePath()   A
last analyzed

Complexity

Conditions 5
Paths 12

Size

Total Lines 21
Code Lines 10

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 10
CRAP Score 5.0187

Importance

Changes 0
Metric Value
cc 5
eloc 10
nc 12
nop 1
dl 0
loc 21
ccs 10
cts 11
cp 0.9091
crap 5.0187
rs 9.6111
c 0
b 0
f 0
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
}