ImageResponseMiddlewareAbstract::getUri()   B
last analyzed

Complexity

Conditions 6
Paths 32

Size

Total Lines 24
Code Lines 15

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 42

Importance

Changes 0
Metric Value
dl 0
loc 24
ccs 0
cts 20
cp 0
rs 8.5125
c 0
b 0
f 0
cc 6
eloc 15
nc 32
nop 1
crap 42
1
<?php
2
namespace Staticus\Resources\Middlewares\Image;
3
4
use Staticus\Resources\Middlewares\ResourceResponseMiddlewareAbstract;
5
use Staticus\Resources\ResourceDOInterface;
6
use Staticus\Resources\Image\ResourceImageDO;
7
8
abstract class ImageResponseMiddlewareAbstract extends ResourceResponseMiddlewareAbstract
9
{
10
    protected function getUri(ResourceDOInterface $resourceDO)
11
    {
12
        /** @var \Staticus\Resources\Image\ResourceImageDO $resourceDO */
13
        $uri = $resourceDO->getName() . '.' . $resourceDO->getType();
14
        $query = [];
15
        if (ResourceDOInterface::DEFAULT_VARIANT !== $resourceDO->getVariant()) {
16
            $query['var'] = $resourceDO->getVariant();
17
        }
18
        if (ResourceDOInterface::DEFAULT_NAME_ALTERNATIVE !== $resourceDO->getNameAlternative()) {
19
            $query['alt'] = $resourceDO->getNameAlternative();
20
        }
21
        if (ResourceDOInterface::DEFAULT_VERSION !== $resourceDO->getVersion()) {
22
            $query['v'] = $resourceDO->getVersion();
23
        }
24
        if (ResourceImageDO::DEFAULT_DIMENSION !== $resourceDO->getDimension()) {
25
            $query['size'] = $resourceDO->getDimension();
26
        }
27
        $query = http_build_query($query, null, '&', PHP_QUERY_RFC3986); // RFC for correct spaces
28
        if ($query) {
29
            $uri .= '?' . $query;
30
        }
31
32
        return $uri;
33
    }
34
}
35