CollectionHydrator::hydrate()   A
last analyzed

Complexity

Conditions 3
Paths 3

Size

Total Lines 11
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 3.3332

Importance

Changes 1
Bugs 0 Features 1
Metric Value
cc 3
eloc 5
c 1
b 0
f 1
nc 3
nop 2
dl 0
loc 11
ccs 4
cts 6
cp 0.6667
crap 3.3332
rs 10
1
<?php
2
3
4
namespace Asiries335\redisSteamPhp\Hydrator;
5
6
7
use Asiries335\redisSteamPhp\Data\Collection;
8
use Asiries335\redisSteamPhp\Data\DataInterface;
9
10
class CollectionHydrator implements HydratorInterface
11
{
12
13
    /**
14
     * Collection hydrate
15
     *
16
     * @param array  $data  Data
17
     * @param string $class Class Collection
18
     *
19
     * @return mixed
20
     * @throws \ErrorException
21
     */
22 1
    public function hydrate(array $data, string $class) : Collection
23
    {
24 1
        if (empty($data) === true) {
25
            throw new \ErrorException('Data is empty');
26
        }
27
28 1
        if (is_subclass_of($class, DataInterface::class) === false) {
29
            throw new \ErrorException('class is not implemented from DataInterface');
30
        }
31
32 1
        return call_user_func($class . '::create', $data);
33
    }
34
}