DefaultFilenameGenerator   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 39
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 2

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 4
lcom 0
cbo 2
dl 0
loc 39
ccs 11
cts 11
cp 1
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A generate() 0 13 2
A getFormat() 0 8 2
1
<?php
2
3
namespace MediaMonks\SonataMediaBundle\Generator;
4
5
use MediaMonks\SonataMediaBundle\ParameterBag\ImageParameterBag;
6
use MediaMonks\SonataMediaBundle\Model\MediaInterface;
7
8
class DefaultFilenameGenerator implements FilenameGeneratorInterface
9
{
10
11
    const FORMAT_JPG = 'jpg';
12
13
    /**
14
     * @param MediaInterface $media
15
     * @param ImageParameterBag $parameterBag
16
     *
17
     * @return string
18
     */
19 5
    public function generate(
20
        MediaInterface $media,
21
        ImageParameterBag $parameterBag
22
    ): string {
23 5
        $parametersFlat = [];
24 5
        foreach ($parameterBag->toArray($media) as $k => $v) {
25 5
            $parametersFlat[] = $k.'_'.$v;
26
        }
27
28 5
        return pathinfo($media->getImage(), PATHINFO_FILENAME).
29 5
            '/'.implode('-', $parametersFlat).
30 5
            '.'.$this->getFormat($parameterBag->getExtra());
31
    }
32
33
    /**
34
     * @param array $parameters
35
     *
36
     * @return string
37
     */
38 5
    private function getFormat(array $parameters): string
39
    {
40 5
        if (isset($parameters['fm'])) {
41 2
            return $parameters['fm'];
42
        }
43
44 4
        return self::FORMAT_JPG;
45
    }
46
}
47