Jet\Data_Forest

Někdy jeden strom nestačí a je potřeba celý les :-) Proč troškařit ...

A teď vážně. Sem tam je potřeba naráz exportovat několik stromů (pochopitelně stromů spolu souvisejících a podobných). Nebo je nutné použít několik stromů jako možnosti výběru. Dobrým příkladem je například volba povolených operací ve správě autorizačních rolí (pokud chcete vidět konkrétní použití, tak v ukázkové aplikaci hledejte například ve třídě JetApplication\Auth_Administrator_Role).

Stručně řečeno Jet\Data_Forest slouží ke spojení spolu souvisejících stromů do jednoho celku, který je možný naráz procházet a exportovat tak jak je to možné se stromy jednotlivými.

POZOR! Každý strom musí být nějak identifikován. Jako identifikátor stromu slouží identifikátor jeho kořenového uzlu. Je tedy nutné, aby každý strom v lese měl svůj vlastní unikátní identifikátor kořenového uzlu.

Přehled metod

Metoda Význam
public appendTree(
Data_Tree $tree
) : void
Přidá strom do lesa. Strom v lese ještě nesmí být (jinak je vyhozena výjimka).
public getTrees(
) : Data_Tree[]
Vrátí všechny stormy co jsou v lese.
public getTree(
string $tree_id
) : Data_Tree
Vrátí strom na základě identifikátoru (identifikátor stromu: viz výše)
public removeTree(
string $tree_id
) : void
Odstraní strom na základě identifikátoru (identifikátor stromu: viz výše)
public getTreeExists(
string $tree_id
) : bool
Zjistí zda je daný strom v lese na základě identifikátoru (identifikátor stromu: viz výše)
public toArray(
int|null $max_depth=null
) : array
Zcela identicky jako strom je možné i les exportovat do podoby pole.
public toJSON(
) : string
Zcela identicky jako strom je možné i les exportovat do formátu JSON
public jsonSerialize(
) : array
Zcela identicky jako strom je možné i les exportovat do formátu JSON.

Tato metoda slouží funkci json_encode.
public current(
) : Data_Tree_Node
Viz PHP Iterator

Stejně jako může být pomocí foreach procházen celý strom, nebo jeho větev, tak je možné procházet celý lest. Pořadí stromů je pak určeno pořadím jejich přidání.
public key(
) : string
public next(
) : void
public valid(
) : bool
public rewind(
) : void
public count(
) : int
Viz PHP Countable
Předchozí kapitola
Jet\Data_Tree_Exception
Další kapitola
Stránkování dat - Jet\Data_Paginator