ModelSerializer::serialize()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 9
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 6
CRAP Score 2

Importance

Changes 0
Metric Value
cc 2
eloc 5
nc 2
nop 1
dl 0
loc 9
rs 10
c 0
b 0
f 0
ccs 6
cts 6
cp 1
crap 2
1
<?php
2
/**
3
 * File: ModelSerializer.php
4
 *
5
 * @author      Maciej Sławik <[email protected]>
6
 * Github:      https://github.com/maciejslawik
7
 */
8
9
namespace MSlwk\Otomoto\Middleware\App\Model;
10
11
use MSlwk\Otomoto\App\Model\Data\ModelDTO;
12
use MSlwk\Otomoto\App\Model\Data\ModelDTOArray;
13
14
/**
15
 * Class ModelSerializer
16
 * @package MSlwk\Otomoto\Middleware\App\Model
17
 */
18
class ModelSerializer
19
{
20
    /**
21
     * @param ModelDTOArray $modelDTOArray
22
     * @return string
23
     */
24 1
    public function serialize(ModelDTOArray $modelDTOArray): string
25
    {
26 1
        $modelArray = [];
27 1
        foreach ($modelDTOArray as $modelDTO) {
28 1
            $modelArray[] = [
29 1
                'name' => $modelDTO->getName()
30
            ];
31
        }
32 1
        return serialize($modelArray);
33
    }
34
35
    /**
36
     * @param string $modelsDTOArrayString
37
     * @return ModelDTOArray
38
     */
39 1
    public function unserialize(string $modelsDTOArrayString): ModelDTOArray
40
    {
41 1
        $modelArray = unserialize($modelsDTOArrayString);
42 1
        $modelDTOArray = new ModelDTOArray();
43
44 1
        foreach ($modelArray as $modelData) {
45 1
            $modelDTO = new ModelDTO($modelData['name']);
46 1
            $modelDTOArray->add($modelDTO);
47
        }
48
49 1
        return $modelDTOArray;
50
    }
51
}
52