CacheBuilder   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 43
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 5

Importance

Changes 0
Metric Value
wmc 5
lcom 0
cbo 5
dl 0
loc 43
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A build() 0 35 5
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;
0 ignored issues
show
Deprecated Code introduced by
The class Doctrine\Common\Cache\XcacheCache has been deprecated.

This class, trait or interface has been deprecated.

Loading history...
40
                break;
41
42
            case extension_loaded('memcache'):
43
                $memcache = new \Memcache;
44
                $memcache->connect('127.0.0.1');
45
46
                $cacheDriver = new MemcacheCache;
0 ignored issues
show
Deprecated Code introduced by
The class Doctrine\Common\Cache\MemcacheCache has been deprecated.

This class, trait or interface has been deprecated.

Loading history...
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