Completed
Pull Request — master (#9)
by Vytautas
10:39 queued 07:17
created

CacheManagerFactory::createService()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 14
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 6

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 14
ccs 0
cts 9
cp 0
rs 9.4285
cc 2
eloc 6
nc 2
nop 1
crap 6
1
<?php
2
3
namespace SvImages\Service\Factory;
4
5
use Psr\Container\ContainerInterface;
6
use SvImages\Cache\StorageInterface;
7
use SvImages\Exception\InvalidArgumentException;
8
use SvImages\Options\ModuleOptions;
9
use SvImages\Service\CacheManager;
10
11
/**
12
 * @author Vytautas Stankus <[email protected]>
13
 * @license MIT
14
 */
15
class CacheManagerFactory
16
{
17
    /**
18
     * Create service
19
     *
20
     * @param ContainerInterface $container
21
     *
22
     * @return CacheManager
23
     */
24
    public function __invoke(ContainerInterface $container)
25
    {
26
        /** @var ModuleOptions $options */
27
        $options = $container->get(ModuleOptions::class);
28
29
        if (!$container->has($options->getCache())) {
30
            throw new InvalidArgumentException('Images cache storage is not set.');
31
        }
32
33
        /** @var StorageInterface $storage */
34
        $storage = $container->get($options->getCache());
35
36
        return new CacheManager($storage);
37
    }
38
}
39