Zeta Components - high quality PHP components

Zeta Components Manual :: Docs For Class ezcTreeDbParentChild

TreeDatabaseTiein::ezcTreeDbParentChild

Class ezcTreeDbParentChild

ezcTreeDbParentChild implements a tree backend which stores parent/child information in a simple table containing the node's ID and its parent's ID.

The table that stores the index (configured using the $indexTableName argument of the __construct method) should contain at least two fields. The first one 'id' will contain the node's ID, the second one 'parent_id' the ID of the node's parent. Both fields should be of the same database field type. Supported field types are either integer or a string type. In order to use auto-generated IDs, the 'id' field needs to be an auto-incrementing integer field, by using either an auto-increment field, or a sequence.

Source for this file: /TreeDatabaseTiein/src/backends/db_parent_child.php

ezcTree
   |
   --ezcTreeDb
      |
      --ezcTreeDbParentChild
Version:   //autogentag//

Descendants

Child Class Description
ezcTreeDbNestedSet ezcTreeDbNestedSet implements a tree backend which stores parent/child information with left and right values.

Properties

string read/write $nodeClassName
Which class is used as tree node - this class *must* inherit the ezcTreeNode class.
ezcTreeDbDataStore read $store
The data store that is used for retrieving/storing data.

Inherited Member Variables

From ezcTreeDb
protected ezcTreeDb::$dbh
protected ezcTreeDb::$indexTableName
From ezcTree
protected ezcTree::$inTransaction
protected ezcTree::$inTransactionCommit
protected ezcTree::$properties

Method Summary

public static void create( $dbh , $indexTableName , $store )
Creates a new ezcTreeDbParentChild object.
public void addChild( $parentId , $childNode )
Adds the node $childNode as child of the node with ID $parentId.
protected void addChildNodesBreadthFirst( $list , $nodeId )
Adds the children nodes of the node with ID $nodeId to the ezcTreeNodeList $list.
protected void countChildNodes( &$count , $nodeId , $count )
Adds the number of children with for the node with ID $nodeId nodes to $count, recursively.
protected ezcQueryInsert createAddEmptyNodeQuery( )
Creates the query to insert an empty node into the database, so that the last-inserted ID can be obtained.
public void delete( $nodeId )
Deletes the node with ID $nodeId from the tree, including all its children.
protected PDOStatement fetchChildRecords( $nodeId )
Runs SQL to get all the children of the node with ID $nodeId as a PDO result set.
public ezcTreeNodeList fetchChildren( $nodeId )
Returns all the children of the node with ID $nodeId.
public ezcTreeNodeList fetchPath( $nodeId )
Returns all the nodes in the path from the root node to the node with ID $nodeId, including those two nodes.
public ezcTreeNodeList fetchSubtree( $nodeId )
Alias for fetchSubtreeDepthFirst().
public ezcTreeNodeList fetchSubtreeBreadthFirst( $nodeId )
Returns the node with ID $nodeId and all its children, sorted according to the Breadth-first sorting algorithm.
public ezcTreeNodeList fetchSubtreeDepthFirst( $nodeId )
Returns the node with ID $nodeId and all its children, sorted according to the Depth-first sorting algorithm.
public void fixateTransaction( )
Fixates the transaction.
public int getChildCount( $nodeId )
Returns the number of direct children of the node with ID $nodeId.
public int getChildCountRecursive( $nodeId )
Returns the number of children of the node with ID $nodeId, recursively.
public int getPathLength( $nodeId )
Returns the distance from the root node to the node with ID $nodeId.
public bool hasChildNodes( $nodeId )
Returns whether the node with ID $nodeId has children.
public bool isChildOf( $childId , $parentId )
Returns whether the node with ID $childId is a direct child of the node with ID $parentId.
public bool isDescendantOf( $childId , $parentId )
Returns whether the node with ID $childId is a direct or indirect child of the node with ID $parentId.
public bool isSiblingOf( $child1Id , $child2Id )
Returns whether the nodes with IDs $child1Id and $child2Id are siblings (ie, they share the same parent).
public void move( $nodeId , $targetParentId )
Moves the node with ID $nodeId as child to the node with ID $targetParentId.
public void setRootNode( $node )
Sets a new node as root node, this also wipes out the whole tree.

Inherited Methods

From ezcTreeDb
public ezcTreeDb ezcTreeDb::__construct()
Constructs a new ezcTreeDb object.
protected abstract ezcQueryInsert ezcTreeDb::createAddEmptyNodeQuery()
Creates the query to insert an empty node into the database, so that the last-inserted ID can be obtained.
protected ezcQuery ezcTreeDb::createAddNodeQuery()
Creates the query to insert/update an empty node in the database.
public ezcTreeNode ezcTreeDb::fetchParent()
Returns the parent node of the node with ID $id.
protected integer ezcTreeDb::generateNodeID()
This method generates the next node ID.
protected string ezcTreeDb::getParentId()
Returns the ID of parent of the node with ID $childId.
public ezcTreeNode ezcTreeDb::getRootNode()
Returns the root node.
public bool ezcTreeDb::nodeExists()
Returns whether the node with ID $id exists as tree node.
From ezcTree
public void ezcTree::accept()
Implements the accept method for visiting.
public abstract void ezcTree::addChild()
Adds the node $childNode as child of the node with ID $parentId.
protected void ezcTree::addTransactionItem()
Adds a new transaction item to the list.
public void ezcTree::beginTransaction()
Starts an transaction in which all tree modifications are queued until the transaction is committed with the commit() method.
protected void ezcTree::checkNodeId()
This method checks whether a node ID is valid to be used in a backend.
public void ezcTree::commit()
Commits the transaction by running the stored instructions to modify the tree structure.
public static void ezcTree::copy()
Copies the tree in $from to the empty tree in $to.
public ezcTreeNode ezcTree::createNode()
Creates a new tree node with node ID $nodeId and $data.
public abstract void ezcTree::delete()
Deletes the node with ID $nodeId from the tree, including all its children.
public abstract ezcTreeNodeList ezcTree::fetchChildren()
Returns all the children of the node with ID $nodeId.
public ezcTreeNode ezcTree::fetchNodeById()
Returns the node identified by the ID $nodeId.
public abstract ezcTreeNode ezcTree::fetchParent()
Returns the parent node of the node with ID $nodeId.
public abstract ezcTreeNodeList ezcTree::fetchPath()
Returns all the nodes in the path from the root node to the node with ID $nodeId, including those two nodes.
public abstract ezcTreeNodeList ezcTree::fetchSubtree()
Alias for fetchSubtreeDepthFirst().
public abstract ezcTreeNodeList ezcTree::fetchSubtreeBreadthFirst()
Returns the node with ID $nodeId and all its children, sorted according to the Breadth-first sorting algorithm.
public abstract ezcTreeNodeList ezcTree::fetchSubtreeDepthFirst()
Returns the node with ID $nodeId and all its children, sorted according to the Depth-first sorting algorithm.
protected abstract integer ezcTree::generateNodeID()
This method generates the next node ID.
public abstract int ezcTree::getChildCount()
Returns the number of direct children of the node with ID $nodeId.
public abstract int ezcTree::getChildCountRecursive()
Returns the number of children of the node with ID $nodeId, recursively.
public abstract int ezcTree::getPathLength()
Returns the distance from the root node to the node with ID $nodeId.
public abstract ezcTreeNode ezcTree::getRootNode()
Returns the root node.
public abstract bool ezcTree::hasChildNodes()
Returns whether the node with ID $nodeId has children.
public bool ezcTree::inTransaction()
Returns whether we are currently in a transaction or not
public bool ezcTree::inTransactionCommit()
Returns whether we are currently in a transaction commit state or not
public abstract bool ezcTree::isChildOf()
Returns whether the node with ID $childId is a direct child of the node with ID $parentId.
public abstract bool ezcTree::isDescendantOf()
Returns whether the node with ID $childId is a direct or indirect child of the node with ID $parentId.
public abstract bool ezcTree::isSiblingOf()
Returns whether the nodes with IDs $child1Id and $child2Id are siblings (ie, they share the same parent).
public abstract void ezcTree::move()
Moves the node with ID $nodeId as child to the node with ID $targetParentId.
public abstract bool ezcTree::nodeExists()
Returns whether the node with ID $nodeId exists.
public void ezcTree::rollback()
Rolls back the transaction by clearing all stored instructions.
public abstract void ezcTree::setRootNode()
Sets a new node as root node, this also wipes out the whole tree.

Methods

create

static void create( $dbh , string $indexTableName , ezcTreeDbDataStore $store )

Creates a new ezcTreeDbParentChild object.

The different arguments to the method configure which database connection ($dbh) is used to access the database and the $indexTableName argument which table is used to retrieve the relation data from. The $store argument configure which data store is used with this tree.

It is up to the user to create the database table and make sure it is empty.

Parameters:
Name Type Description
$dbh ezcDbHandler
$indexTableName string
$store ezcTreeDbDataStore
Redefined in descendants as:
Method Description
ezcTreeDbNestedSet::create() Creates a new ezcTreeDbNestedSet object. 

addChild

void addChild( string $parentId , $childNode )

Adds the node $childNode as child of the node with ID $parentId.

Parameters:
Name Type Description
$parentId string
$childNode ezcTreeNode
Redefinition of:
Method Description
ezcTree::addChild() Adds the node $childNode as child of the node with ID $parentId.
Redefined in descendants as:
Method Description
ezcTreeDbNestedSet::addChild() Adds the node $childNode as child of the node with ID $parentId. 

addChildNodesBreadthFirst

void addChildNodesBreadthFirst( $list , string $nodeId )

Adds the children nodes of the node with ID $nodeId to the ezcTreeNodeList $list.

Parameters:
Name Type Description
$list ezcTreeNodeList
$nodeId string

countChildNodes

void countChildNodes( &$count , string $nodeId , int $count )

Adds the number of children with for the node with ID $nodeId nodes to $count, recursively.

Parameters:
Name Type Description
$count int
$nodeId string
&$count

createAddEmptyNodeQuery

ezcQueryInsert createAddEmptyNodeQuery( )

Creates the query to insert an empty node into the database, so that the last-inserted ID can be obtained.

Redefinition of:
Method Description
ezcTreeDb::createAddEmptyNodeQuery() Creates the query to insert an empty node into the database, so that the last-inserted ID can be obtained.
Redefined in descendants as:
Method Description
ezcTreeDbNestedSet::createAddEmptyNodeQuery() Creates the query to insert an empty node into the database, so that the last-inserted ID can be obtained. 

delete

void delete( string $nodeId )

Deletes the node with ID $nodeId from the tree, including all its children.

Parameters:
Name Type Description
$nodeId string
Redefinition of:
Method Description
ezcTree::delete() Deletes the node with ID $nodeId from the tree, including all its children.
Redefined in descendants as:
Method Description
ezcTreeDbNestedSet::delete() Deletes the node with ID $nodeId from the tree, including all its children. 

fetchChildRecords

PDOStatement fetchChildRecords( string $nodeId )

Runs SQL to get all the children of the node with ID $nodeId as a PDO result set.

Parameters:
Name Type Description
$nodeId string

fetchChildren

ezcTreeNodeList fetchChildren( string $nodeId )

Returns all the children of the node with ID $nodeId.

Parameters:
Name Type Description
$nodeId string
Redefinition of:
Method Description
ezcTree::fetchChildren() Returns all the children of the node with ID $nodeId.

fetchPath

ezcTreeNodeList fetchPath( string $nodeId )

Returns all the nodes in the path from the root node to the node with ID $nodeId, including those two nodes.

Parameters:
Name Type Description
$nodeId string
Redefinition of:
Method Description
ezcTree::fetchPath() Returns all the nodes in the path from the root node to the node with ID $nodeId, including those two nodes.
Redefined in descendants as:
Method Description
ezcTreeDbNestedSet::fetchPath() Returns all the nodes in the path from the root node to the node with ID $nodeId, including those two nodes. 

fetchSubtree

ezcTreeNodeList fetchSubtree( string $nodeId )

Alias for fetchSubtreeDepthFirst().

Parameters:
Name Type Description
$nodeId string
Redefinition of:
Method Description
ezcTree::fetchSubtree() Alias for fetchSubtreeDepthFirst().

fetchSubtreeBreadthFirst

ezcTreeNodeList fetchSubtreeBreadthFirst( string $nodeId )

Returns the node with ID $nodeId and all its children, sorted according to the Breadth-first sorting algorithm.

Parameters:
Name Type Description
$nodeId string
Redefinition of:
Method Description
ezcTree::fetchSubtreeBreadthFirst() Returns the node with ID $nodeId and all its children, sorted according to the Breadth-first sorting algorithm.

fetchSubtreeDepthFirst

ezcTreeNodeList fetchSubtreeDepthFirst( string $nodeId )

Returns the node with ID $nodeId and all its children, sorted according to the Depth-first sorting algorithm.

Parameters:
Name Type Description
$nodeId string
Redefinition of:
Method Description
ezcTree::fetchSubtreeDepthFirst() Returns the node with ID $nodeId and all its children, sorted according to the Depth-first sorting algorithm.
Redefined in descendants as:
Method Description
ezcTreeDbNestedSet::fetchSubtreeDepthFirst() Returns the node with ID $nodeId and all its children, sorted according to the Depth-first sorting algorithm. 

fixateTransaction

void fixateTransaction( )

Fixates the transaction.

getChildCount

int getChildCount( string $nodeId )

Returns the number of direct children of the node with ID $nodeId.

Parameters:
Name Type Description
$nodeId string
Redefinition of:
Method Description
ezcTree::getChildCount() Returns the number of direct children of the node with ID $nodeId.

getChildCountRecursive

int getChildCountRecursive( string $nodeId )

Returns the number of children of the node with ID $nodeId, recursively.

Parameters:
Name Type Description
$nodeId string
Redefinition of:
Method Description
ezcTree::getChildCountRecursive() Returns the number of children of the node with ID $nodeId, recursively.

getPathLength

int getPathLength( string $nodeId )

Returns the distance from the root node to the node with ID $nodeId.

Parameters:
Name Type Description
$nodeId string
Redefinition of:
Method Description
ezcTree::getPathLength() Returns the distance from the root node to the node with ID $nodeId.
Redefined in descendants as:
Method Description
ezcTreeDbNestedSet::getPathLength() Returns the distance from the root node to the node with ID $nodeId. 

hasChildNodes

bool hasChildNodes( string $nodeId )

Returns whether the node with ID $nodeId has children.

Parameters:
Name Type Description
$nodeId string
Redefinition of:
Method Description
ezcTree::hasChildNodes() Returns whether the node with ID $nodeId has children.

isChildOf

bool isChildOf( string $childId , string $parentId )

Returns whether the node with ID $childId is a direct child of the node with ID $parentId.

Parameters:
Name Type Description
$childId string
$parentId string
Redefinition of:
Method Description
ezcTree::isChildOf() Returns whether the node with ID $childId is a direct child of the node with ID $parentId.

isDescendantOf

bool isDescendantOf( string $childId , string $parentId )

Returns whether the node with ID $childId is a direct or indirect child of the node with ID $parentId.

Parameters:
Name Type Description
$childId string
$parentId string
Redefinition of:
Method Description
ezcTree::isDescendantOf() Returns whether the node with ID $childId is a direct or indirect child of the node with ID $parentId.
Redefined in descendants as:
Method Description
ezcTreeDbNestedSet::isDescendantOf() Returns whether the node with ID $childId is a direct or indirect child of the node with ID $parentId. 

isSiblingOf

bool isSiblingOf( string $child1Id , string $child2Id )

Returns whether the nodes with IDs $child1Id and $child2Id are siblings (ie, they share the same parent).

Parameters:
Name Type Description
$child1Id string
$child2Id string
Redefinition of:
Method Description
ezcTree::isSiblingOf() Returns whether the nodes with IDs $child1Id and $child2Id are siblings (ie, they share the same parent).

move

void move( string $nodeId , string $targetParentId )

Moves the node with ID $nodeId as child to the node with ID $targetParentId.

Parameters:
Name Type Description
$nodeId string
$targetParentId string
Redefinition of:
Method Description
ezcTree::move() Moves the node with ID $nodeId as child to the node with ID $targetParentId.
Redefined in descendants as:
Method Description
ezcTreeDbNestedSet::move() Moves the node with ID $nodeId as child to the node with ID $targetParentId. 

setRootNode

void setRootNode( $node )

Sets a new node as root node, this also wipes out the whole tree.

Parameters:
Name Type Description
$node ezcTreeNode
Redefinition of:
Method Description
ezcTree::setRootNode() Sets a new node as root node, this also wipes out the whole tree.
Redefined in descendants as:
Method Description
ezcTreeDbNestedSet::setRootNode() Sets a new node as root node, this also wipes out the whole tree. 
Documentation generated by phpDocumentor 1.4.3