ScopedDiContainer
extends DiRegisterContainer
in package
implements
IScopedDiContainer
限定的DIコンテナ実装。
Table of Contents
Interfaces
- IScopedDiContainer
- 限定的DIコンテナ。
Properties
- $mapping : array<class-string|non-empty-string, DiItem>
- IDとの紐づけ。
- $isDisposed : bool
- 解放済みか。
Methods
- __construct() : mixed
- 生成。
- __destruct() : mixed
- add() : void
- 登録処理。
- call() : mixed
- コールバックを実施。
- clone() : IScopedDiContainer
- 現在のDIコンテナを複製。
- dispose() : void
- 解放処理。
- empty() : IDisposable
- 何もしない解放処理オブジェクトを生成。
- get() : object
- 指定したIDのオブジェクトを取得。
- has() : bool
- 指定したIDが登録されているか。
- isDisposed() : bool
- 解放済みか。
- new() : object
- クラス生成。
- registerClass() : void
- 簡易登録(クラス名指定)。
- registerMapping() : void
- 簡易登録(ID:クラス指定)。
- registerValue() : void
- 簡易登録(値指定)。
- remove() : DiItem|null
- 登録アイテムの解除。
- canSetValue() : bool
- create() : mixed
- 生成処理。
- createFromClassName() : mixed
- クラス名からオブジェクトの生成。
- disposeImpl() : void
- 解放処理内部実装。
- generateParameterValues() : array<string|int, mixed>
- 生成オブジェクトに対するパラメータ一覧を生成する。
- getItemFromPropertyType() : DiItem|null
- getMappingItem() : DiItem|null
- 登録アイテムを具象クラス名も考慮して取得する。
- setMembers() : void
- メンバ インジェクション
- throwIfDisposed() : void
- 解放済みの場合、例外を投げる。
Properties
$mapping
IDとの紐づけ。
protected
array<class-string|non-empty-string, DiItem>
$mapping
= []
$isDisposed
解放済みか。
private
bool
$isDisposed
= false
Methods
__construct()
生成。
public
__construct(DiContainer $sourceContainer) : mixed
Parameters
- $sourceContainer : DiContainer
-
元になるDIコンテナ。
__destruct()
public
final __destruct() : mixed
add()
登録処理。
public
add(string $id, DiItem $item) : void
Parameters
- $id : string
- $item : DiItem
call()
コールバックを実施。
public
call(callable $callback[, array<string|int, mixed> $arguments = [] ]) : mixed
Parameters
- $callback : callable
- $arguments : array<string|int, mixed> = []
-
new
を参照。
clone()
現在のDIコンテナを複製。
public
clone() : IScopedDiContainer
Return values
IScopedDiContainerdispose()
解放処理。
public
final dispose() : void
empty()
何もしない解放処理オブジェクトを生成。
public
static empty() : IDisposable
Return values
IDisposableget()
指定したIDのオブジェクトを取得。
public
get(string $id) : object
Parameters
- $id : string
Return values
objecthas()
指定したIDが登録されているか。
public
has(string $id) : bool
Parameters
- $id : string
Return values
boolisDisposed()
解放済みか。
public
isDisposed() : bool
Return values
boolnew()
クラス生成。
public
new(string $idOrClassName[, array<string|int, mixed> $arguments = [] ]) : object
Parameters
- $idOrClassName : string
- $arguments : array<string|int, mixed> = []
-
生成パラメータ指定。
- int: 引数位置(0基点)。負数の場合で 0 に近い項目で割り当て可能(非
null
)なパラメータであれば順に消費されていく。 - string: 先頭が
$
で始まる場合は引数名、それ以外は型名と判断。型名の場合は一致するごとに消費されていく。 - 引数位置指定が優先される
- 未指定パラメータはDIコンテナ側で生成する
- int: 引数位置(0基点)。負数の場合で 0 に近い項目で割り当て可能(非
Return values
objectregisterClass()
簡易登録(クラス名指定)。
public
registerClass(string $className[, int $lifecycle = DiItem::LIFECYCLE_TRANSIENT ]) : void
既に登録されている場合に既存アイテムは削除される。
Parameters
- $className : string
- $lifecycle : int = DiItem::LIFECYCLE_TRANSIENT
registerMapping()
簡易登録(ID:クラス指定)。
public
registerMapping(string $id, string $className[, int $lifecycle = DiItem::LIFECYCLE_TRANSIENT ]) : void
既に登録されている場合に既存アイテムは削除される。
Parameters
- $id : string
- $className : string
- $lifecycle : int = 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(string $id) : DiItem|null
Parameters
- $id : string
Return values
DiItem|null —解除したアイテム。終了処理は呼び出し側で担保すること。存在しない場合は null
。
canSetValue()
protected
canSetValue(ReflectionType|null $parameterType, mixed $value) : bool
Parameters
- $parameterType : ReflectionType|null
- $value : mixed
Return values
boolcreate()
生成処理。
protected
create(DiItem $item, array<int|string, mixed> $arguments, int $level, bool $mappingKeyOnly, array<string|int, DiItem> $callStack) : mixed
Parameters
createFromClassName()
クラス名からオブジェクトの生成。
protected
createFromClassName(class-string $className, array<int|string, mixed> $arguments, int $level, bool $mappingKeyOnly, array<string|int, DiItem> $callStack) : mixed
Parameters
- $className : class-string
- $arguments : array<int|string, mixed>
-
IDiContainer::new
参照。 - $level : int
-
現在階層(0: 最初)
- $mappingKeyOnly : bool
-
真の場合は登録アイテムIDのみに限定。偽の場合、登録されている具象クラス名を考慮する。
- $callStack : array<string|int, DiItem>
disposeImpl()
解放処理内部実装。
protected
disposeImpl() : void
継承先で継承元を呼び出すこと。
generateParameterValues()
生成オブジェクトに対するパラメータ一覧を生成する。
protected
generateParameterValues(ReflectionFunctionAbstract $reflectionMethod, array<int|string, mixed> $arguments, int $level, bool $mappingKeyOnly, array<string|int, DiItem> $callStack) : array<string|int, mixed>
Parameters
- $reflectionMethod : ReflectionFunctionAbstract
- $arguments : array<int|string, mixed>
-
IDiContainer::new
参照。 - $level : int
-
現在階層(0: 最初)
- $mappingKeyOnly : bool
-
真の場合は登録アイテムIDのみに限定。偽の場合、登録されている具象クラス名を考慮する。
- $callStack : array<string|int, DiItem>
Tags
Return values
array<string|int, mixed>getItemFromPropertyType()
protected
getItemFromPropertyType(ReflectionType|null $parameterType, bool $mappingKeyOnly) : DiItem|null
Parameters
- $parameterType : ReflectionType|null
- $mappingKeyOnly : bool
Return values
DiItem|nullgetMappingItem()
登録アイテムを具象クラス名も考慮して取得する。
protected
getMappingItem(class-string|non-empty-string $idOrClassName, bool $mappingKeyOnly) : DiItem|null
Parameters
- $idOrClassName : class-string|non-empty-string
-
登録アイテムID
- $mappingKeyOnly : bool
-
真の場合は登録アイテムIDのみに限定。偽の場合、登録されている具象クラス名を考慮する。
Return values
DiItem|nullsetMembers()
メンバ インジェクション
protected
setMembers(object $target, int $level, bool $mappingKeyOnly, array<string|int, DiItem> $callStack) : void
Parameters
- $target : object
- $level : int
-
現在階層(0: 最初)
- $mappingKeyOnly : bool
-
真の場合は登録アイテムIDのみに限定。偽の場合、登録されている具象クラス名を考慮する。
- $callStack : array<string|int, DiItem>
throwIfDisposed()
解放済みの場合、例外を投げる。
protected
final throwIfDisposed() : void