MessageHydrator::hydrate()   A
last analyzed

Complexity

Conditions 3
Paths 3

Size

Total Lines 11
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 12

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 0
cts 9
cp 0
crap 12
rs 10
1
<?php
2
3
4
namespace Asiries335\redisSteamPhp\Hydrator;
5
6
7
use Asiries335\redisSteamPhp\Data\DataInterface;
8
use Asiries335\redisSteamPhp\Data\Message;
9
10
class MessageHydrator implements HydratorInterface
11
{
12
13
    /**
14
     * Message hydrate
15
     *
16
     * @param array  $data  Data
17
     * @param string $class Class Message
18
     *
19
     * @return Message
20
     * @throws \ErrorException
21
     */
22
    public function hydrate(array $data, string $class) : Message
23
    {
24
        if (empty($data) === true) {
25
            throw new \ErrorException('Data is empty');
26
        }
27
28
        if (is_subclass_of($class, DataInterface::class) === false) {
29
            throw new \ErrorException('class is not implemented from DataInterface');
30
        }
31
32
        return call_user_func($class . '::create', $data);
33
    }
34
}