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

RedisConnector::connect()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 15

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 15
rs 9.7666
c 0
b 0
f 0
cc 1
nc 1
nop 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