Completed
Branch feature/0.7.0 (0808a6)
by Ryuichi
49:27
created

CacheProvider::getTemporaryFileObject()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 11
Code Lines 8

Duplication

Lines 11
Ratio 100 %

Importance

Changes 0
Metric Value
cc 1
eloc 8
nc 1
nop 0
dl 11
loc 11
rs 9.4285
c 0
b 0
f 0
1
<?php
2
namespace WebStream\Cache\Test\Providers;
3
4
use WebStream\Container\Container;
5
use WebStream\Cache\Driver\Apcu;
6
use WebStream\Cache\Driver\Memcached;
7
use WebStream\Cache\Driver\Redis;
8
use WebStream\Cache\Driver\TemporaryFile;
9
use WebStream\Cache\Driver\CacheDriverFactory;
10
use WebStream\IO\File;
11
12
/**
13
 * CacheProvider
14
 * @author Ryuichi TANAKA.
15
 * @since 2016/07/11
16
 * @version 0.7
17
 */
18
trait CacheProvider
19
{
20
    public function cacheProvider()
21
    {
22
        return [
23
            [$this->getApcuObject()],
24
            [$this->getMemcachedObject()],
25
            [$this->getRedisObject()],
26
            [$this->getTemporaryFileObject()]
27
        ];
28
    }
29
30
    private function getApcuObject()
31
    {
32
        $factory = new CacheDriverFactory();
33
        $driver = $factory->create("WebStream\Cache\Driver\Apcu");
34
        $logger = new class() { function __call($name, $args) {} };
35
        $driver->inject('logger', $logger);
36
37
        return $driver;
38
    }
39
40
    private function getMemcachedObject()
41
    {
42
        $factory = new CacheDriverFactory();
43
        $container = new Container(false);
44
        $container->servers = [["memcached", 11211]];
45
        $driver = $factory->create("WebStream\Cache\Driver\Memcached", $container);
46
        $logger = new class() { function __call($name, $args) {} };
47
        $driver->inject('logger', $logger);
48
49
        return $driver;
50
    }
51
52
    private function getRedisObject()
53
    {
54
        $factory = new CacheDriverFactory();
55
        $container = new Container(false);
56
        $container->host = "redis";
57
        $container->port = 6379;
58
        $driver = $factory->create("WebStream\Cache\Driver\Redis", $container);
59
        $logger = new class() { function __call($name, $args) {} };
60
        $driver->inject('logger', $logger);
61
62
        return $driver;
63
    }
64
65
    private function getTemporaryFileObject()
66
    {
67
        $factory = new CacheDriverFactory();
68
        $container = new Container(false);
69
        $container->cacheDir = "/tmp";
70
        $driver = $factory->create("WebStream\Cache\Driver\TemporaryFile", $container);
71
        $logger = new class() { function __call($name, $args) {} };
72
        $driver->inject('logger', $logger);
73
74
        return $driver;
75
    }
76
}
77