IScopedDiContainer
extends
IDiRegisterContainer, IDisposable
in
限定的DIコンテナ。
生成元のデータを引き継ぎつつ生成元に影響を与えない。
- 破棄処理は今回分のみ
- 未生成シングルトンは本処理で生成され、元コンテナでは生成されない
- つまりは状態により元コンテナと差異が発生する可能性あり(ファクトリとかがその影響大)
Table of Contents
Methods
- add() : void
- 登録処理。
- call() : mixed
- コールバックを実施。
- clone() : IScopedDiContainer
- 現在のDIコンテナを複製。
- dispose() : void
- 解放処理。
- get() : object
- 指定したIDのオブジェクトを取得。
- has() : bool
- 指定したIDが登録されているか。
- isDisposed() : bool
- 解放済みか。
- new() : object
- クラス生成。
- registerClass() : void
- 簡易登録(クラス名指定)。
- registerMapping() : void
- 簡易登録(ID:クラス指定)。
- registerValue() : void
- 簡易登録(値指定)。
- remove() : DiItem|null
- 登録アイテムの解除。
Methods
add()
登録処理。
public
add(class-string|non-empty-string $id, DiItem $item) : void
Parameters
- $id : class-string|non-empty-string
- $item : DiItem
call()
コールバックを実施。
public
call(callable $callback[, array<int|string, mixed> $arguments = [] ]) : mixed
Parameters
- $callback : callable
- $arguments : array<int|string, mixed> = []
-
new
を参照。
clone()
現在のDIコンテナを複製。
public
clone() : IScopedDiContainer
Return values
IScopedDiContainerdispose()
解放処理。
public
dispose() : void
get()
指定したIDのオブジェクトを取得。
public
get(class-string|T>|non-empty-string $id) : object
Parameters
- $id : class-string|T>|non-empty-string
Tags
Return values
objecthas()
指定したIDが登録されているか。
public
has(class-string|non-empty-string $id) : bool
Parameters
- $id : class-string|non-empty-string
Return values
boolisDisposed()
解放済みか。
public
isDisposed() : bool
Return values
boolnew()
クラス生成。
public
new(class-string|T>|non-empty-string $idOrClassName[, array<int|string, mixed> $arguments = [] ]) : object
Parameters
- $idOrClassName : class-string|T>|non-empty-string
- $arguments : array<int|string, mixed> = []
-
生成パラメータ指定。
- int: 引数位置(0基点)。負数の場合で 0 に近い項目で割り当て可能(非
null
)なパラメータであれば順に消費されていく。 - string: 先頭が
$
で始まる場合は引数名、それ以外は型名と判断。型名の場合は一致するごとに消費されていく。 - 引数位置指定が優先される
- 未指定パラメータはDIコンテナ側で生成する
- int: 引数位置(0基点)。負数の場合で 0 に近い項目で割り当て可能(非
Tags
Return values
objectregisterClass()
簡易登録(クラス名指定)。
public
registerClass(class-string $className[, DiItem::LIFECYCLE_* $lifecycle = DiItem::LIFECYCLE_TRANSIENT ]) : void
既に登録されている場合に既存アイテムは削除される。
Parameters
- $className : class-string
- $lifecycle : DiItem::LIFECYCLE_* = DiItem::LIFECYCLE_TRANSIENT
registerMapping()
簡易登録(ID:クラス指定)。
public
registerMapping(class-string|non-empty-string $id, class-string $className[, DiItem::LIFECYCLE_* $lifecycle = DiItem::LIFECYCLE_TRANSIENT ]) : void
既に登録されている場合に既存アイテムは削除される。
Parameters
- $id : class-string|non-empty-string
- $className : class-string
- $lifecycle : DiItem::LIFECYCLE_* = DiItem::LIFECYCLE_TRANSIENT
registerValue()
簡易登録(値指定)。
public
registerValue(object|null $value[, string $id = Text::EMPTY ]) : void
既に登録されている場合に既存アイテムは削除される。
Parameters
- $value : object|null
- $id : string = Text::EMPTY
-
$valueの登録ID。未指定(空)の場合は $value の型名が使用される。
remove()
登録アイテムの解除。
public
remove(class-string|non-empty-string $id) : DiItem|null
Parameters
- $id : class-string|non-empty-string
Return values
DiItem|null —解除したアイテム。終了処理は呼び出し側で担保すること。存在しない場合は null
。