Code Coverage |
||||||||||
Lines |
Functions and Methods |
Classes and Traits |
||||||||
Total | n/a |
0 / 0 |
n/a |
0 / 0 |
CRAP | n/a |
0 / 0 |
1 | <?php |
2 | |
3 | declare(strict_types=1); |
4 | |
5 | namespace PeServer\Core\DI; |
6 | |
7 | use PeServer\Core\DI\DiItem; |
8 | use PeServer\Core\DI\IDiContainer; |
9 | use PeServer\Core\Text; |
10 | |
11 | /** |
12 | * 登録可能DIコンテナ。 |
13 | */ |
14 | interface IDiRegisterContainer extends IDiContainer |
15 | { |
16 | #region function |
17 | |
18 | /** |
19 | * 登録処理。 |
20 | * |
21 | * @param class-string|non-empty-string $id |
22 | * @param DiItem $item |
23 | */ |
24 | public function add(string $id, DiItem $item): void; |
25 | |
26 | /** |
27 | * 登録アイテムの解除。 |
28 | * |
29 | * @param class-string|non-empty-string $id |
30 | * @return DiItem|null 解除したアイテム。終了処理は呼び出し側で担保すること。存在しない場合は `null`。 |
31 | */ |
32 | public function remove(string $id): ?DiItem; |
33 | |
34 | /** |
35 | * 簡易登録(クラス名指定)。 |
36 | * |
37 | * 既に登録されている場合に既存アイテムは削除される。 |
38 | * |
39 | * @param class-string $className |
40 | * @param DiItem::LIFECYCLE_* $lifecycle |
41 | */ |
42 | public function registerClass(string $className, int $lifecycle = DiItem::LIFECYCLE_TRANSIENT): void; |
43 | |
44 | /** |
45 | * 簡易登録(ID:クラス指定)。 |
46 | * |
47 | * 既に登録されている場合に既存アイテムは削除される。 |
48 | * |
49 | * @param class-string|non-empty-string $id |
50 | * @param class-string $className |
51 | * @param DiItem::LIFECYCLE_* $lifecycle |
52 | */ |
53 | public function registerMapping(string $id, string $className, int $lifecycle = DiItem::LIFECYCLE_TRANSIENT): void; |
54 | |
55 | /** |
56 | * 簡易登録(値指定)。 |
57 | * |
58 | * 既に登録されている場合に既存アイテムは削除される。 |
59 | * |
60 | * @param object|null $value |
61 | * @param string $id $valueの登録ID。未指定(空)の場合は $value の型名が使用される。 |
62 | */ |
63 | public function registerValue(?object $value, string $id = Text::EMPTY): void; |
64 | |
65 | #endregion |
66 | } |