UnitCollection
in package
implements
Countable
ユニットのコレクション(tree 構造と flat 構造の両方の違いを吸収するために利用)
Table of Contents
Interfaces
- Countable
Properties
Methods
- __clone() : mixed
- __construct() : mixed
- all() : bool
- any() : bool
- clone() : UnitCollection
- ユニットを複製し、新しいUnitCollectionを返す
- count() : int
- filter() : UnitCollection
- find() : Model|null
- findKey() : int|string|null
- flat() : array<string|int, Model>
- flatArray() : array<int, array<string, mixed>>
- getPrimaryImageUnit() : ImageUnit)|null
- ユニットのメイン画像ユニットを取得
- getPrimaryImageUnitOrFallback() : ImageUnit)|null
- メイン画像ユニットを取得し、無効な場合は最初の画像系ユニットを返す
- insertAt() : void
- ツリー上の position にユニット(単体 or 配列)を挿入する - rootId が null の場合…ルート直下に index 挿入 - rootId が指定された場合…該当ノードの children に index 挿入
- map() : UnitCollection
- normalize() : UnitCollection
- 親子関係の整合性を保証したUnitCollectionを返す 親が存在しない子ユニットを削除する
- reduce() : mixed
- remove() : void
- ツリーから指定 ID(またはID配列)を削除する
- resort() : void
- ユニットの並び順を再整列
- setPrimaryImageUnit() : void
- メイン画像ユニットを設定する
- slice() : UnitCollection
- フラット配列に対してsliceを実行する ツリー構造は考慮されず、ユニットの並び順に基づいてsliceされる
- sliceRoots() : UnitCollection
- ツリー構造を考慮したsliceを実行する ルートノード配列に対してsliceを適用し、選ばれたrootはサブツリーごと丸ごと含まれる
- tree() : UnitTree
- treeArray() : array<int, array<string, mixed>>
- walk() : void
- walkTree() : void
- ツリー構造を辿ってコールバック処理を実行する
- cloneRecursive() : void
- flattenTree() : void
- insertArray() : array<int, T>
- ツリー/配列の指定位置に items を挿入(不変)
- recursiveInsertNodes() : array<string|int, UnitTreeNode>
- ツリーを再帰的に辿って、指定 rootId の children に newNodes を挿入
- removeUnitRecursiveNodes() : array<string|int, UnitTreeNode>
- ツリーを再帰的に辿って、該当 ID(または配列に含まれるID)のノードを除去
- resortRecursive() : void
- toFlat() : array<string|int, Model>
- toTree() : UnitTree
- treeToArray() : array<int, array<string, mixed>>
- walkTreeRecursive() : void
Properties
$units
private
array<string|int, Model>
$units
Methods
__clone()
public
__clone() : mixed
__construct()
public
__construct(array<string|int, Model>|UnitTree $units) : mixed
Parameters
all()
public
all(callable(Model): bool $callback) : bool
Parameters
- $callback : callable(Model): bool
Return values
boolany()
public
any(callable(Model): bool $callback) : bool
Parameters
- $callback : callable(Model): bool
Return values
boolclone()
ユニットを複製し、新しいUnitCollectionを返す
public
clone() : UnitCollection
Return values
UnitCollectioncount()
public
count() : int
Tags
Return values
intfilter()
public
filter(callable(Model): bool $callback) : UnitCollection
Parameters
- $callback : callable(Model): bool
Return values
UnitCollectionfind()
public
find(callable(Model): bool $callback) : Model|null
Parameters
- $callback : callable(Model): bool
Return values
Model|nullfindKey()
public
findKey(callable(Model): bool $callback) : int|string|null
Parameters
- $callback : callable(Model): bool
Return values
int|string|nullflat()
public
flat() : array<string|int, Model>
Return values
array<string|int, Model>flatArray()
public
flatArray() : array<int, array<string, mixed>>
Return values
array<int, array<string, mixed>>getPrimaryImageUnit()
ユニットのメイン画像ユニットを取得
public
getPrimaryImageUnit() : ImageUnit)|null
Return values
ImageUnit)|nullgetPrimaryImageUnitOrFallback()
メイン画像ユニットを取得し、無効な場合は最初の画像系ユニットを返す
public
getPrimaryImageUnitOrFallback() : ImageUnit)|null
Return values
ImageUnit)|nullinsertAt()
ツリー上の position にユニット(単体 or 配列)を挿入する - rootId が null の場合…ルート直下に index 挿入 - rootId が指定された場合…該当ノードの children に index 挿入
public
insertAt(Model|array<string|int, Model> $newUnits[, array{rootId?: non-empty-string|null, index?: int<0, max>|null} $position = [] ]) : void
Parameters
map()
public
map(callable(Model): mixed $callback) : UnitCollection
Parameters
- $callback : callable(Model): mixed
Return values
UnitCollectionnormalize()
親子関係の整合性を保証したUnitCollectionを返す 親が存在しない子ユニットを削除する
public
normalize() : UnitCollection
Return values
UnitCollectionreduce()
public
reduce(callable(T, Model): mixed $callback[, T $initial = null ]) : mixed
Parameters
- $callback : callable(T, Model): mixed
- $initial : T = null
Tags
remove()
ツリーから指定 ID(またはID配列)を削除する
public
remove(non-empty-string|array<string|int, string> $id) : void
Parameters
- $id : non-empty-string|array<string|int, string>
resort()
ユニットの並び順を再整列
public
resort([int<1, max> $initial = 1 ]) : void
Parameters
- $initial : int<1, max> = 1
-
並び順の開始番号
setPrimaryImageUnit()
メイン画像ユニットを設定する
public
setPrimaryImageUnit(non-empty-string $primaryImageUnitId) : void
Parameters
- $primaryImageUnitId : non-empty-string
-
メイン画像ユニットのID
slice()
フラット配列に対してsliceを実行する ツリー構造は考慮されず、ユニットの並び順に基づいてsliceされる
public
slice(int $offset[, int|null $length = null ][, bool $preserveKeys = false ]) : UnitCollection
Parameters
- $offset : int
- $length : int|null = null
- $preserveKeys : bool = false
Return values
UnitCollectionsliceRoots()
ツリー構造を考慮したsliceを実行する ルートノード配列に対してsliceを適用し、選ばれたrootはサブツリーごと丸ごと含まれる
public
sliceRoots(int $offset[, int|null $length = null ][, bool $preserveKeys = false ]) : UnitCollection
Parameters
- $offset : int
- $length : int|null = null
- $preserveKeys : bool = false
Return values
UnitCollectiontree()
public
tree() : UnitTree
Return values
UnitTreetreeArray()
public
treeArray() : array<int, array<string, mixed>>
Return values
array<int, array<string, mixed>>walk()
public
walk(callable(Model): mixed $callback[, mixed $arg = null ]) : void
Parameters
- $callback : callable(Model): mixed
- $arg : mixed = null
walkTree()
ツリー構造を辿ってコールバック処理を実行する
public
walkTree(callable(UnitTreeNode, int): void $callback) : void
Parameters
- $callback : callable(UnitTreeNode, int): void
cloneRecursive()
private
cloneRecursive(UnitTreeNode $node, non-empty-string|null $newParentId, array<string|int, Model> &$newUnits) : void
Parameters
- $node : UnitTreeNode
- $newParentId : non-empty-string|null
- $newUnits : array<string|int, Model>
flattenTree()
private
flattenTree(array<string|int, UnitTreeNode> $nodes, array<string|int, Model> &$flat) : void
Parameters
- $nodes : array<string|int, UnitTreeNode>
- $flat : array<string|int, Model>
Tags
insertArray()
ツリー/配列の指定位置に items を挿入(不変)
private
insertArray(array<int, T> $arr, array<int, T> $items[, int<0, max>|null $index = null ]) : array<int, T>
Parameters
- $arr : array<int, T>
-
既存配列
- $items : array<int, T>
-
挿入する配列
- $index : int<0, max>|null = null
-
挿入位置(null は末尾)
Tags
Return values
array<int, T>recursiveInsertNodes()
ツリーを再帰的に辿って、指定 rootId の children に newNodes を挿入
private
recursiveInsertNodes(array<string|int, UnitTreeNode> $nodes, string|null $rootId, array<string|int, UnitTreeNode> $newNodes, int<0, max>|null $index) : array<string|int, UnitTreeNode>
Parameters
- $nodes : array<string|int, UnitTreeNode>
- $rootId : string|null
-
null の場合はマッチしない(ルート直下への挿入は呼び出し側で実施)
- $newNodes : array<string|int, UnitTreeNode>
- $index : int<0, max>|null
Return values
array<string|int, UnitTreeNode>removeUnitRecursiveNodes()
ツリーを再帰的に辿って、該当 ID(または配列に含まれるID)のノードを除去
private
removeUnitRecursiveNodes(array<string|int, UnitTreeNode> $nodes, non-empty-string|array<string|int, string> $id) : array<string|int, UnitTreeNode>
Parameters
- $nodes : array<string|int, UnitTreeNode>
- $id : non-empty-string|array<string|int, string>
Return values
array<string|int, UnitTreeNode>resortRecursive()
private
resortRecursive(array<string|int, UnitTreeNode> $nodes[, int<1, max> $initial = 1 ]) : void
Parameters
- $nodes : array<string|int, UnitTreeNode>
- $initial : int<1, max> = 1
-
並び順の開始番号
toFlat()
private
toFlat(UnitTree $tree) : array<string|int, Model>
Parameters
- $tree : UnitTree
Return values
array<string|int, Model>toTree()
private
toTree(array<string|int, Model> $units) : UnitTree
Parameters
- $units : array<string|int, Model>
Return values
UnitTreetreeToArray()
private
treeToArray(array<string|int, UnitTreeNode> $nodes) : array<int, array<string, mixed>>
Parameters
- $nodes : array<string|int, UnitTreeNode>
Return values
array<int, array<string, mixed>>walkTreeRecursive()
private
walkTreeRecursive(UnitTreeNode $node, callable(UnitTreeNode, int): void $callback, int $i) : void
Parameters
- $node : UnitTreeNode
- $callback : callable(UnitTreeNode, int): void
- $i : int