ToFloat   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 27
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 6
dl 0
loc 27
rs 10
c 0
b 0
f 0
wmc 4

2 Methods

Rating   Name   Duplication   Size   Complexity  
A extract() 0 9 2
A hydrate() 0 7 2
1
<?php
2
3
declare(strict_types=1);
4
5
namespace ApiSkeletons\Doctrine\GraphQL\Hydrator\Strategy;
6
7
use Laminas\Hydrator\Strategy\StrategyInterface;
8
9
use function floatval;
10
11
/**
12
 * Transform a number value into a php native float
13
 *
14
 * @returns float
15
 */
16
class ToFloat extends AbstractCollectionStrategy implements
17
    StrategyInterface
18
{
19
    /** @param mixed|null $object */
20
    public function extract(mixed $value, object|null $object = null): mixed
21
    {
22
        if ($value === null) {
23
            // @codeCoverageIgnoreStart
24
            return $value;
25
            // @codeCoverageIgnoreEnd
26
        }
27
28
        return floatval($value);
29
    }
30
31
    /**
32
     * @param mixed[]|null $data
33
     *
34
     * @codeCoverageIgnore
35
     */
36
    public function hydrate(mixed $value, array|null $data): mixed
37
    {
38
        if ($value === null) {
39
            return $value;
40
        }
41
42
        return floatval($value);
43
    }
44
}
45