Completed
Push — 6.13 ( 299dc7...bbf433 )
by
unknown
46:15 queued 21:37
created

ResolverFactory::createCacheResolver()   A

Complexity

Conditions 4
Paths 6

Size

Total Lines 18

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 4
nc 6
nop 0
dl 0
loc 18
rs 9.6666
c 0
b 0
f 0
1
<?php
2
3
/**
4
 * @copyright Copyright (C) eZ Systems AS. All rights reserved.
5
 * @license For full copyright and license information view LICENSE file distributed with this source code.
6
 */
7
namespace eZ\Bundle\EzPublishCoreBundle\Imagine\Cache;
8
9
use eZ\Publish\Core\MVC\ConfigResolverInterface;
10
use Liip\ImagineBundle\Imagine\Cache\Resolver\ResolverInterface;
11
12
class ResolverFactory
13
{
14
    /**
15
     * @var \eZ\Publish\Core\MVC\ConfigResolverInterface
16
     */
17
    private $configResolver;
18
19
    /**
20
     * @var \Liip\ImagineBundle\Imagine\Cache\Resolver\ResolverInterface
21
     */
22
    private $resolver;
23
24
    /**
25
     * @var string|null
26
     */
27
    private $resolverDecoratorClass;
28
29
    /**
30
     * @var string
31
     */
32
    private $proxyResolverClass;
33
34
    /**
35
     * @var string
36
     */
37
    private $relativeResolverClass;
38
39
    /**
40
     * @param \eZ\Publish\Core\MVC\ConfigResolverInterface $configResolver
41
     * @param \Liip\ImagineBundle\Imagine\Cache\Resolver\ResolverInterface $resolver
42
     * @param string $proxyResolverClass
43
     * @param string $relativeResolverClass
44
     */
45
    public function __construct(
46
        ConfigResolverInterface $configResolver,
47
        ResolverInterface $resolver,
48
        $proxyResolverClass,
49
        $relativeResolverClass
50
    ) {
51
        $this->configResolver = $configResolver;
52
        $this->resolver = $resolver;
53
        $this->proxyResolverClass = $proxyResolverClass;
54
        $this->relativeResolverClass = $relativeResolverClass;
55
    }
56
57
    /**
58
     * @return \Liip\ImagineBundle\Imagine\Cache\Resolver\ResolverInterface
59
     */
60
    public function createCacheResolver()
61
    {
62
        $imageHost = $this->configResolver->hasParameter('image_host') ?
63
            $this->configResolver->getParameter('image_host') :
64
            '';
65
66
        if ($imageHost === '') {
67
            return $this->resolver;
68
        }
69
70
        if ($imageHost === '/') {
71
            $this->resolverDecoratorClass = $this->relativeResolverClass;
72
        } else {
73
            $this->resolverDecoratorClass = $this->proxyResolverClass;
74
        }
75
76
        return new $this->resolverDecoratorClass($this->resolver, [$imageHost]);
77
    }
78
}
79