RedisClient::setQueueClient()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 1
c 1
b 0
f 0
dl 0
loc 3
rs 10
cc 1
nc 1
nop 2
1
<?php
2
3
namespace LeoCarmo\RedisQueue;
4
5
use LeoCarmo\RedisQueue\Exceptions\QueueWithoutConnectionException;
6
7
trait RedisClient
8
{
9
10
    /**
11
     * @var \Redis
12
     */
13
    protected static $redis;
14
15
    /**
16
     * @param string $queue
17
     * @param \Redis $redis
18
     */
19
    public static function setQueueClient(string $queue, \Redis $redis)
20
    {
21
        self::$redis[$queue] = $redis;
22
    }
23
24
    /**
25
     * @param \Redis $redis
26
     */
27
    public static function setDefaultQueueClient(\Redis $redis)
28
    {
29
        self::$redis['default'] = $redis;
30
    }
31
32
    /**
33
     * @param string $queue
34
     * @return \Redis
35
     *
36
     * @throws QueueWithoutConnectionException
37
     */
38
    protected static function client(string $queue)
39
    {
40
        if (self::$redis[$queue]) {
41
            return self::$redis[$queue];
42
        }
43
44
        if (self::$redis['default']) {
45
            return self::$redis['default'];
46
        }
47
48
        throw new QueueWithoutConnectionException("Queue {$queue} without redis connection.");
49
    }
50
}
51