Total Complexity | 5 |
Total Lines | 46 |
Duplicated Lines | 0 % |
Coverage | 100% |
Changes | 6 | ||
Bugs | 1 | Features | 3 |
1 | <?php |
||
7 | class Forwarding |
||
8 | { |
||
9 | public const CONTAINER_KEY = '_forwarding'; |
||
10 | |||
11 | /** |
||
12 | * @var class-string |
||
|
|||
13 | */ |
||
14 | public string $pendingClass; |
||
15 | |||
16 | /** |
||
17 | * Initialize the forwarding. |
||
18 | */ |
||
19 | 21 | public static function enable(): self |
|
22 | } |
||
23 | |||
24 | /** |
||
25 | * Define the pending class. |
||
26 | */ |
||
27 | 22 | public function from(string $class): static |
|
28 | { |
||
29 | 22 | $this->pendingClass = $this->resolve($class); |
|
30 | |||
31 | 22 | return $this; |
|
32 | } |
||
33 | |||
34 | /** |
||
35 | * Define the forwarding for the pending class set previously. |
||
36 | */ |
||
37 | 21 | public function to(string $destination): static |
|
45 | } |
||
46 | |||
47 | /** |
||
48 | * Extract an implementation from the interface if passed. |
||
49 | */ |
||
50 | 22 | protected function resolve(string $class): string |
|
55 |