ResourceObjectModule   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 21
Duplicated Lines 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
wmc 4
eloc 7
dl 0
loc 21
rs 10
c 2
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A getResourceObjects() 0 4 2
A configure() 0 5 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace BEAR\Package\Module;
6
7
use BEAR\Package\Provide\Error\NullPage;
8
use BEAR\Resource\ResourceObject;
9
use Generator;
10
use Override;
11
use Ray\Di\AbstractModule;
12
13
/**
14
 * Bind all resource object
15
 */
16
final class ResourceObjectModule extends AbstractModule
17
{
18
    /** @param Generator<array{0: class-string<ResourceObject>, 1: string}> $resourceObjects */
19
    public function __construct(
20
        private Generator $resourceObjects,
21
    ) {
22
        parent::__construct();
23
    }
24
25
    #[Override]
26
    protected function configure(): void
27
    {
28
        $this->install(new \BEAR\Resource\Module\ResourceObjectModule($this->getResourceObjects()));
29
        $this->bind(NullPage::class);
30
    }
31
32
    /** @return Generator<class-string<ResourceObject>> */
33
    private function getResourceObjects(): Generator
34
    {
35
        foreach ($this->resourceObjects as [$class]) {
36
            yield $class;
37
        }
38
    }
39
}
40