Поиск наилучшего класса PHP вложенных множеств (класс PEAR исключен)

Я ищу PHP (с MYSQL) вложенный набор классов со всеми необходимыми функциями. Например:

createLeftNode, createRightNode, createRootNode, createSubNode, deleteNode и moveTree . Не только 1 левый, 1 правый, 1 вверх и 1 вниз, но также часть дерева в более ничтожном дереве.

Благодаря!

Solutions Collecting From Web of "Поиск наилучшего класса PHP вложенных множеств (класс PEAR исключен)"

Вложенные наборы отлично, если вы работаете с иерархическими данными. Его гораздо сложнее реализовать только с помощью php-массивов, особенно если вы хотите сохранить эту информацию в базе данных.

вы можете попробовать это. Никогда не использовал его, но после короткого скрининга кода он выглядит почти полным.

http://www.edutech.ch/contribution/nstrees/index.php

посмотрите на вложенное поведение Доктрины

В мире есть что-то новое: http://www.sideralis.org/baobab/


Старый и устаревший ответ. Библиотека больше не поддерживается.

Я использовал библиотеку nstrees «buggzzy» ( http://www.edutech.ch/contribution/nstrees/index.php ) для проекта, где я должен был предоставить пользователю возможность создавать и редактировать организационную схему своей компании ,

Мне очень нравится алгоритм « Измененный алгоритм упорядочивания деревьев », но мне кажется, что библиотека nstree работает медленно. В моем случае мне приходится рекурсивно перебирать дерево. Возможно, это что-то еще в моем скрипте, которое медленное.

В любом случае, я все еще ищу альтернативу, и я недавно проверил сайт PEAR и нашел там библиотеку деревьев: http://pear.php.net/package/Tree

Библиотека PEAR не казалась такой всеобъемлющей, как NSTREE, но я предполагаю, что она может быть более эффективной.

Статья, которая очень помогла мне в этом вопросе: Хранение иерархических данных в базе данных

Посмотрите на эту библиотеку https://github.com/fpietka/Zend-Nested-Set : реализация модели вложенного набора для использования с Zend Framework

Это было давно запоздало, но я обновил https://github.com/fpietka/Zend-Nested-Set (даже с модульными тестами).

Я написал реализацию вложенного набора, которая использует Doctrine DBAL в качестве уровня абстракции базы данных. Поскольку мы используем его с Drupal, он также отслеживает revision_id .

https://github.com/previousnext/nested-set