Inject   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 20
Duplicated Lines 0 %

Importance

Changes 3
Bugs 0 Features 0
Metric Value
wmc 2
eloc 3
c 3
b 0
f 0
dl 0
loc 20
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 6 1
A isOptional() 0 3 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Ray\Di\Di;
6
7
use Attribute;
8
9
/**
10
 * Annotates your class methods into which the Injector should inject values
11
 *
12
 * @psalm-immutable
13
 */
14
#[Attribute(Attribute::TARGET_METHOD | Attribute::TARGET_PARAMETER)]
15
final class Inject implements InjectInterface
16
{
17
    /**
18
     * @SuppressWarnings("PHPMD.BooleanArgumentFlag")
19
     */
20
    public function __construct(
21
        /**
22
         * If true, and the appropriate binding is not found, the Injector will skip injection of this method or field rather than produce an error.
23
         */
24
        public bool $optional = false
25
    ) {
26
    }
27
28
    /**
29
     * {@inheritdoc}
30
     */
31
    public function isOptional(): bool
32
    {
33
        return $this->optional;
34
    }
35
}
36