MZZ.Framework 0.3.x: Документация
Разделы

6.4 Работа с древовидными структурами

Для хранения и работы с древовидными структурами используется класс dbTreeNS. Этот класс обеспечивает работу с деревьями по технологии Nested Sets. Причём в одной таблице со структурой дерева может храниться несколько деревьев.
В работе используется 2 таблицы, назовем их условно - tree и data.

Вся работа с деревьями осуществляется через simpleMapperForTree и доменные объекты типа simpleForTree. simpleMapperForTree предоставляет следующие методы:

Остальные методы этого класса наследуются от simpleMapper'a.

У класса simpleForTree есть следующие методы для работы с деревьями:

В остальном работа с классом simpleForTree аналогична работе с любым наследником класса simple.

Настройка дерева производится с помощью переопределения метода simpleMapperForTree::getTreeParams(), который по умолчанию возвращает массив следующего вида:

protected function getTreeParams()
{
        return array('nameField' => 'name', 'pathField' => 'path', 'joinField' => 'parent', 'tableName' => $this->table . '_tree', 'treeIdField' => 'tree_id');
}

В наследнике данный метод может возвращать массив, содержащий лишь часть ключей, в этом случае недостающие значения будут использованы из массива по умолчанию. Ключи в этом массиве обозначают следующее: