Completed
Pull Request — master (#7)
by
unknown
07:59
created

RedisConnector   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 47
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Importance

Changes 0
Metric Value
wmc 2
lcom 1
cbo 1
dl 0
loc 47
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 5 1
A connect() 0 15 1
1
<?php
2
3
namespace SfCod\QueueBundle\Connector;
4
5
use SfCod\QueueBundle\Base\JobResolverInterface;
6
use SfCod\QueueBundle\Queue\QueueInterface;
7
use SfCod\QueueBundle\Queue\RedisQueue;
8
use SfCod\QueueBundle\Service\RedisDriver;
9
10
/**
11
 * Connector for queue to redis
12
 *
13
 * @author Virchenko Maksim <[email protected]>
14
 */
15
class RedisConnector implements ConnectorInterface
16
{
17
    /**
18
     * @var JobResolverInterface
19
     */
20
    protected $jobResolver;
21
22
    /**
23
     * @var RedisDriver
24
     */
25
    protected $redis;
26
27
    /**
28
     * RedisConnector constructor.
29
     *
30
     * @param JobResolverInterface $jobResolver
31
     * @param RedisDriver $redis
32
     */
33
    public function __construct(JobResolverInterface $jobResolver, RedisDriver $redis)
34
    {
35
        $this->jobResolver = $jobResolver;
36
        $this->redis = $redis;
37
    }
38
39
    /**
40
     * Establish a queue database.
41
     *
42
     * @param array $config
43
     *
44
     * @return QueueInterface
45
     */
46
    public function connect(array $config): QueueInterface
47
    {
48
        $config = array_merge([
49
            'limit' => 15,
50
        ], $config);
51
52
        return new RedisQueue(
53
            $this->jobResolver,
54
            $this->redis,
55
            $config['collection'],
56
            $config['queue'],
57
            $config['expire'],
58
            $config['limit']
59
        );
60
    }
61
}
62