Message   A
last analyzed

Complexity

Total Complexity 9

Size/Duplication

Total Lines 87
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 0

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 9
c 1
b 0
f 0
lcom 1
cbo 0
dl 0
loc 87
ccs 21
cts 21
cp 1
rs 10

8 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 5 2
A generateToken() 0 4 1
A encode() 0 4 1
A decode() 0 6 1
A getToken() 0 4 1
A setToken() 0 6 1
A getData() 0 4 1
A setData() 0 6 1
1
<?php
2
3
namespace Simplario\Quedis;
4
5
use Simplario\Quedis\Interfaces\MessageInterface;
6
7
/**
8
 * Class Message
9
 * @package Simplario\Quedis
10
 */
11
class Message implements MessageInterface
12
{
13
    /**
14
     * @var null|string
15
     */
16
    protected $token;
17
    /**
18
     * @var mixed
19
     */
20
    protected $data;
21
22
    /**
23
     * Message constructor.
24
     * @param mixed $data
25
     * @param null $token
26
     */
27 29
    public function __construct($data, $token = null)
28
    {
29 29
        $this->data = $data;
30 29
        $this->token = $token !== null ? $token : $this->generateToken();
31 29
    }
32
33
    /**
34
     * @return string
35
     */
36 27
    protected function generateToken()
37
    {
38 27
        return implode('-', [uniqid(), mt_rand(1000000, 9999999), time()]);
39
    }
40
41
    /**
42
     * @return string
43
     */
44 27
    public function encode()
45
    {
46 27
        return serialize([$this->getData(), $this->getToken()]);
47
    }
48
49
    /**
50
     * @param $encoded
51
     * @return static
52
     */
53 20
    public static function decode($encoded)
54
    {
55 20
        $encoded = unserialize($encoded);
56
57 20
        return new static($encoded[0], $encoded[1]);
58
    }
59
60
    /**
61
     * @return string
62
     */
63 28
    public function getToken()
64
    {
65 28
        return $this->token;
66
    }
67
68
    /**
69
     * @param string $token
70
     * @return $this
71
     */
72 1
    public function setToken($token)
73
    {
74 1
        $this->token = $token;
75
76 1
        return $this;
77
    }
78
79
    /**
80
     * @return mixed
81
     */
82 28
    public function getData()
83
    {
84 28
        return $this->data;
85
    }
86
87
    /**
88
     * @param $data
89
     * @return $this
90
     */
91 1
    public function setData($data)
92
    {
93 1
        $this->data = $data;
94
95 1
        return $this;
96
    }
97
}
98
99