ParavelSerializer::closure_serialize()   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
dl 0
loc 3
rs 10
c 1
b 0
f 0
cc 1
nc 1
nop 1
1
<?php
2
3
4
namespace Tohidplus\Paravel\Serializer;
5
6
use Closure;
7
use SuperClosure\Serializer as ClosureSerializer;
8
9
class ParavelSerializer
10
{
11
    /**
12
     * @var ClosureSerializer
13
     */
14
    private ClosureSerializer $closureSerializer;
15
16
    /**
17
     * ParavelSerializer constructor.
18
     * @param ClosureSerializer $closureSerializer
19
     */
20
    public function __construct(ClosureSerializer $closureSerializer)
21
    {
22
        $this->closureSerializer = $closureSerializer;
23
    }
24
25
    /**
26
     * @param $data
27
     * @return string
28
     */
29
    public function base64_serialize($data)
30
    {
31
        return base64_encode(serialize($data));
32
    }
33
34
    /**
35
     * @param $data
36
     * @return mixed
37
     */
38
    public function base64_unserialize($data)
39
    {
40
        return unserialize(base64_decode($data));
41
    }
42
43
    /**
44
     * @param Closure $closure
45
     * @return string
46
     */
47
    public function closure_serialize(Closure $closure)
48
    {
49
        return $this->closureSerializer->serialize($closure);
50
    }
51
52
    /**
53
     * @param string $serialized
54
     * @return Closure
55
     */
56
    public function closure_unserialize(string $serialized)
57
    {
58
        return $this->closureSerializer->unserialize($serialized);
59
    }
60
}
61