Apache Zeta Components Manual :: Docs For Class ezcTreeDb
TreeDatabaseTiein::ezcTreeDb
Class ezcTreeDb
ezcTreeDb contains common methods for the different database tree backends.
Source for this file: /TreeDatabaseTiein/src/backends/db.php
ezcTree | --ezcTreeDb
Version: | //autogentag// |
Descendants
Child Class | Description |
---|---|
ezcTreeDbMaterializedPath | ezcTreeDbMaterializedPath implements a tree backend which stores parent/child information in a path like string (such as /1/4/6/8). |
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. |
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. |
Member Variables
protected ezcDbHandler |
$dbh
Contains the database connection handler. |
protected string |
$indexTableName
Contains the name of the table to retrieve the relational data from. |
Inherited Member Variables
From ezcTree | |
---|---|
protected |
ezcTree::$inTransaction
|
protected |
ezcTree::$inTransactionCommit
|
protected |
ezcTree::$properties
|
Method Summary
public ezcTreeDb |
__construct(
$dbh
, $indexTableName
, $store
)
Constructs a new ezcTreeDb object. |
protected abstract ezcQueryInsert |
createAddEmptyNodeQuery(
)
Creates the query to insert an empty node into the database, so that the last-inserted ID can be obtained. |
protected ezcQuery |
createAddNodeQuery(
$id
)
Creates the query to insert/update an empty node in the database. |
public ezcTreeNode |
fetchParent(
$id
)
Returns the parent node of the node with ID $id. |
protected integer |
generateNodeID(
)
This method generates the next node ID. |
protected string |
getParentId(
$childId
)
Returns the ID of parent of the node with ID $childId. |
public ezcTreeNode |
getRootNode(
)
Returns the root node. |
public bool |
nodeExists(
$id
)
Returns whether the node with ID $id exists as tree node. |
Inherited Methods
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
__construct
Constructs a new ezcTreeDb object.
The different arguments to the constructor 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.
All database backends require the index table to at least define the field 'id', which can either be a string or an integer field.
Parameters:
Name | Type | Description |
---|---|---|
$dbh |
ezcDbHandler | |
$indexTableName |
string | |
$store |
ezcTreeDbDataStore |
Redefined in descendants as:
Method | Description |
---|---|
ezcTreeDbMaterializedPath::__construct() |
Constructs a new ezcTreeDbMaterializedPath object. |
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 |
---|---|
ezcTreeDbMaterializedPath::createAddEmptyNodeQuery() |
Creates the query to insert an empty node into the database, so that the last-inserted ID can be obtained. |
ezcTreeDbParentChild::createAddEmptyNodeQuery() |
Creates the query to insert an empty node into the database, so that the last-inserted ID can be obtained. |
ezcTreeDbNestedSet::createAddEmptyNodeQuery() |
Creates the query to insert an empty node into the database, so that the last-inserted ID can be obtained. |
createAddNodeQuery
Creates the query to insert/update an empty node in the database.
The query is constructed for the child with ID $id
Parameters:
Name | Type | Description |
---|---|---|
$id |
mixed |
fetchParent
Returns the parent node of the node with ID $id.
This method returns null if there is no parent node.
Parameters:
Name | Type | Description |
---|---|---|
$id |
string |
Redefinition of:
Method | Description |
---|---|
ezcTree::fetchParent() |
Returns the parent node of the node with ID $nodeId. |
generateNodeID
This method generates the next node ID.
It does so by inserting a new empty node into the database, and uses lastInsertId() to obtain the ID for the newly inserted node.
Redefinition of:
Method | Description |
---|---|
ezcTree::generateNodeID() |
This method generates the next node ID. |
getParentId
Returns the ID of parent of the node with ID $childId.
Parameters:
Name | Type | Description |
---|---|---|
$childId |
string |
getRootNode
Returns the root node.
This methods returns null if there is no root node.
Redefinition of:
Method | Description |
---|---|
ezcTree::getRootNode() |
Returns the root node. |
nodeExists
Returns whether the node with ID $id exists as tree node.
Parameters:
Name | Type | Description |
---|---|---|
$id |
string |
Redefinition of:
Method | Description |
---|---|
ezcTree::nodeExists() |
Returns whether the node with ID $nodeId exists. |