Completed
Push — master ( b5054b...5e1fc6 )
by Julián
02:29
created

CacheBuilder::build()   B

Complexity

Conditions 5
Paths 5

Size

Total Lines 35
Code Lines 23

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 35
rs 8.439
c 0
b 0
f 0
cc 5
eloc 23
nc 5
nop 0
1
<?php
2
3
/*
4
 * doctrine-manager-builder (https://github.com/juliangut/doctrine-manager-builder).
5
 * Doctrine2 managers builder.
6
 *
7
 * @license BSD-3-Clause
8
 * @link https://github.com/juliangut/doctrine-manager-builder
9
 * @author Julián Gutiérrez <[email protected]>
10
 */
11
12
namespace Jgut\Doctrine\ManagerBuilder\Util;
13
14
use Doctrine\Common\Cache\ApcuCache;
15
use Doctrine\Common\Cache\ArrayCache;
16
use Doctrine\Common\Cache\MemcacheCache;
17
use Doctrine\Common\Cache\RedisCache;
18
use Doctrine\Common\Cache\XcacheCache;
19
20
/**
21
 * Doctrine cache builder.
22
 */
23
class CacheBuilder
24
{
25
    /**
26
     * Retrieve a newly created doctrine cache driver.
27
     *
28
     * @return ApcuCache|ArrayCache|MemcacheCache|RedisCache|XcacheCache
29
     */
30
    public static function build()
31
    {
32
        switch (true) {
33
            // @codeCoverageIgnoreStart
34
            case extension_loaded('apc'):
35
                $cacheDriver = new ApcuCache;
36
                break;
37
38
            case extension_loaded('xcache'):
39
                $cacheDriver = new XcacheCache;
40
                break;
41
42
            case extension_loaded('memcache'):
43
                $memcache = new \Memcache;
44
                $memcache->connect('127.0.0.1');
45
46
                $cacheDriver = new MemcacheCache;
47
                $cacheDriver->setMemcache($memcache);
48
                break;
49
50
            case extension_loaded('redis'):
51
                $redis = new \Redis();
52
                $redis->connect('127.0.0.1');
53
54
                $cacheDriver = new RedisCache;
55
                $cacheDriver->setRedis($redis);
56
                break;
57
            // @codeCoverageIgnoreEnd
58
59
            default:
60
                $cacheDriver = new ArrayCache;
61
        }
62
63
        return $cacheDriver;
64
    }
65
}
66