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 |