Serializer   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 49
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 1

Test Coverage

Coverage 93.75%

Importance

Changes 5
Bugs 1 Features 0
Metric Value
c 5
b 1
f 0
dl 0
loc 49
ccs 15
cts 16
cp 0.9375
rs 10
wmc 5
lcom 0
cbo 1

2 Methods

Rating   Name   Duplication   Size   Complexity  
A unserialize() 0 4 1
B serialize() 0 25 4
1
<?php
2
3
namespace SidekiqJob;
4
5
/**
6
 * Class Serializer
7
 * @package SidekiqJob
8
 */
9
class Serializer
10
{
11
    /**
12
     * Serialize and normalize job data
13
     *
14
     * @param string        $jobId
15
     * @param object|string $class
16
     * @param array         $args
17
     * @param bool          $retry
18
     * @param string|null   $queue
19
     *
20
     * @return string
21
     * @throws JsonEncodeException
22
     */
23 3
    public function serialize($jobId, $class, $args = [], $retry = true, $queue = null)
24
    {
25 3
        $class = is_object($class) ? get_class($class) : $class;
26
27
        $data = [
28 3
            'class' => $class,
29 3
            'jid' => $jobId,
30 3
            'created_at' => microtime(true),
31 3
            'enqueued_at' => microtime(true),
32 3
            'args' => $args,
33 3
            'retry' => $retry,
34
        ];
35
36 3
        if ($queue !== null) {
37
            $data['queue'] = $queue;
38
        }
39
40 3
        $jsonEncodedData = json_encode($data);
41
42 3
        if ($jsonEncodedData === false) {
43 1
            throw new JsonEncodeException($data, json_last_error(), json_last_error_msg());
44
        }
45
46 2
        return $jsonEncodedData;
47
    }
48
49
    /**
50
     * @param array $data
51
     * @return array
52
     */
53 1
    public function unserialize($data = [])
54
    {
55 1
        return json_decode($data, true);
56
    }
57
}
58