Passed
Push — 1.0.x ( 57bf95...06014a )
by Koldo
02:41
created

PatchFeatureFactory::__invoke()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 14
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 7
CRAP Score 1

Importance

Changes 2
Bugs 0 Features 1
Metric Value
cc 1
eloc 6
nc 1
nop 1
dl 0
loc 14
ccs 7
cts 7
cp 1
crap 1
rs 10
c 2
b 0
f 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Pheature\Crud\Psr11\Toggle;
6
7
use Pheature\Crud\Psr7\Toggle\PatchFeature;
8
use Pheature\Crud\Toggle\Handler\AddStrategy;
9
use Pheature\Crud\Toggle\Handler\DisableFeature;
10
use Pheature\Crud\Toggle\Handler\EnableFeature;
11
use Pheature\Crud\Toggle\Handler\RemoveStrategy;
12
use Psr\Container\ContainerInterface;
13
use Psr\Http\Message\ResponseFactoryInterface;
14
15
final class PatchFeatureFactory
16
{
17 1
    public function __invoke(ContainerInterface $container): PatchFeature
18
    {
19
        /** @var AddStrategy $addStrategy */
20 1
        $addStrategy = $container->get(AddStrategy::class);
21
        /** @var RemoveStrategy $removeStrategy */
22 1
        $removeStrategy = $container->get(RemoveStrategy::class);
23
        /** @var EnableFeature $enableFeature */
24 1
        $enableFeature = $container->get(EnableFeature::class);
25
        /** @var DisableFeature $disableFeature */
26 1
        $disableFeature = $container->get(DisableFeature::class);
27
        /** @var ResponseFactoryInterface $responseFactory */
28 1
        $responseFactory = $container->get(ResponseFactoryInterface::class);
29
30 1
        return self::create($addStrategy, $removeStrategy, $enableFeature, $disableFeature, $responseFactory);
31
    }
32
33 2
    public static function create(
34
        AddStrategy $addStrategy,
35
        RemoveStrategy $removeStrategy,
36
        EnableFeature $enableFeature,
37
        DisableFeature $disableFeature,
38
        ResponseFactoryInterface $responseFactory
39
    ): PatchFeature {
40 2
        return new PatchFeature($addStrategy, $removeStrategy, $enableFeature, $disableFeature, $responseFactory);
41
    }
42
}
43