InvoiceNinjaHydratorFactory   A
last analyzed

Complexity

Total Complexity 1

Size/Duplication

Total Lines 26
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 1
Metric Value
eloc 8
c 1
b 0
f 1
dl 0
loc 26
ccs 8
cts 8
cp 1
rs 10
wmc 1

1 Method

Rating   Name   Duplication   Size   Complexity  
A __invoke() 0 15 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace InvoiceNinjaModule\Hydrator;
6
7
use InvoiceNinjaModule\Strategy\ContactsStrategy;
8
use InvoiceNinjaModule\Strategy\InvitationsStrategy;
9
use InvoiceNinjaModule\Strategy\InvoiceItemsStrategy;
10
use Laminas\Hydrator\ReflectionHydrator;
11
use Laminas\Hydrator\Strategy\ScalarTypeStrategy;
12
use Laminas\ServiceManager\Factory\FactoryInterface;
13
use Psr\Container\ContainerExceptionInterface;
14
use Psr\Container\ContainerInterface;
15
use Psr\Container\NotFoundExceptionInterface;
16
17
/**
18
 * Class InvoiceNinjaHydratorFactory
19
 */
20
final class InvoiceNinjaHydratorFactory implements FactoryInterface
21
{
22
    /**
23
     * @param ContainerInterface $container
24
     * @param string             $requestedName
25
     * @param array|null         $options
26
     *
27
     * @return ReflectionHydrator
28
     * @throws ContainerExceptionInterface
29
     * @throws NotFoundExceptionInterface
30
     */
31 1
    public function __invoke(
32
        ContainerInterface $container,
33
        $requestedName,
34
        array $options = null
35
    ): ReflectionHydrator {
36
        /** @var ReflectionHydrator $hydrator */
37 1
        $hydrator = $container->get('ReflectionHydrator');
38
39 1
        $hydrator->addStrategy('lineItems', $container->get(InvoiceItemsStrategy::class));
40 1
        $hydrator->addStrategy('line_items', $container->get(InvoiceItemsStrategy::class));
41 1
        $hydrator->addStrategy('contacts', $container->get(ContactsStrategy::class));
42 1
        $hydrator->addStrategy('invitations', $container->get(InvitationsStrategy::class));
43 1
        $hydrator->addStrategy('status_id', ScalarTypeStrategy::createToInt());
44
45 1
        return $hydrator;
46
    }
47
}
48