Completed
Push — master ( 28e172...814702 )
by Woody
13s
created

LazyInjectorBuilder::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 3
cts 3
cp 1
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 1
crap 1
1
<?php
2
declare(strict_types=1);
3
4
namespace Northwoods\Container;
5
6
use Auryn\Injector;
7
8
class LazyInjectorBuilder
9
{
10
    /** @var string[] */
11
    private $configs;
12
13
    /**
14
     * @param string[] $configs
15
     */
16 1
    public function __construct(array $configs = [])
17
    {
18 1
        $this->configs = $configs;
19 1
    }
20
21
    /**
22
     * Build the injector using the provided configuration.
23
     */
24 1
    public function build(Injector $injector = null): Injector
25
    {
26 1
        if (empty($injector)) {
27 1
            $injector = new Injector();
28
        }
29
30 1
        $configs = $this->makeConfigs($injector);
31 1
        $builder = new InjectorBuilder($configs);
32
33 1
        return $builder->build($injector);
34
    }
35
36 1
    private function makeConfigs(Injector $injector): array
37
    {
38 1
        return array_map(
39 1
            static function (string $config) use ($injector): InjectorConfig {
40 1
                return $injector->make($config);
41 1
            },
42 1
            $this->configs
43
        );
44
    }
45
}
46