Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
2 / 2
CRAP
100.00% covered (success)
100.00%
15 / 15
RedisConnector
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
2 / 2
6
100.00% covered (success)
100.00%
15 / 15
 connection
100.00% covered (success)
100.00%
1 / 1
4
100.00% covered (success)
100.00%
11 / 11
 __call
100.00% covered (success)
100.00%
1 / 1
2
100.00% covered (success)
100.00%
4 / 4
1<?php
2
3namespace Qmp\Laravel\DBConnector\Connectors;
4
5use Illuminate\Support\Facades\Log;
6use Qmp\Laravel\DBConnector\Config;
7use Predis\Client;
8
9class RedisConnector implements InterfaceConnector
10{
11    protected $redis;
12
13    protected $options = [
14        'timeout' => 10.0
15    ];
16    
17    public function connection(Config $config, $options = [])
18    {
19        $redisConfig = $config->toArray(['host', 'password', 'port', 'database']);
20        if (!isset($redisConfig['database'])) {
21            $redisConfig['database'] = 0;
22        }
23
24        $formattedOptions = config('database.redis.options');
25
26        $formattedOptions = array_merge($formattedOptions ? $formattedOptions : [], $this->options, $options);
27        
28        try {
29            $this->redis = new Client($redisConfig, $formattedOptions);
30            $this->redis->connect();
31        } catch(\Exception $e) {
32            Log::debug('Unable to connect: ' . $e->getMessage());
33            throw new \Exception($e->getMessage());
34        }
35    }
36    
37    public function __call($method, $arguments)
38    {
39        try {
40            return $this->redis->$method(...$arguments);
41        } catch(\Exception $e) {
42            Log::debug("method '$method' does not exist");
43            throw new \Exception($e->getMessage());
44        }
45    }
46}