Passed
Branch master (0b4094)
by Alexander
01:32
created

CallbackSerializer   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 25
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 7
c 1
b 0
f 0
dl 0
loc 25
ccs 0
cts 12
cp 0
rs 10
wmc 3

3 Methods

Rating   Name   Duplication   Size   Complexity  
A unserialize() 0 3 1
A serialize() 0 3 1
A __construct() 0 4 1
1
<?php
2
namespace Yiisoft\Cache\Serializer;
3
4
/**
5
 * CallbackSerializer serializes data via custom PHP callback.
6
 */
7
final class CallbackSerializer implements SerializerInterface
8
{
9
    /**
10
     * @var callable PHP callback, which should be used to serialize value.
11
     */
12
    private $serializeCallback;
13
    /**
14
     * @var callable PHP callback, which should be used to unserialize value.
15
     */
16
    private $unserializeCallback;
17
18
    public function __construct(callable $serializeCallback, callable $unserializeCallback)
19
    {
20
        $this->serializeCallback = $serializeCallback;
21
        $this->unserializeCallback = $unserializeCallback;
22
    }
23
24
    public function serialize($value): string
25
    {
26
        return \call_user_func($this->serializeCallback, $value);
27
    }
28
29
    public function unserialize(string $value)
30
    {
31
        return \call_user_func($this->unserializeCallback, $value);
32
    }
33
}
34