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

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

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

Спасибо!


person user35459    schedule 07.11.2008    source источник


Ответы (6)


Хорошо вложенные наборы хороши, если вы работаете с иерархическими данными. Гораздо сложнее реализовать это только с массивами php, особенно если вы хотите сохранить эту информацию в базе данных.

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

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

person Community    schedule 07.11.2008
comment
Эта библиотека больше не поддерживается, похоже, что на «рынке» появилось что-то новое. Смотрите мой ответ. - person markus; 06.11.2011

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

person Tom Haigh    schedule 07.11.2008

Есть кое-что новенькое: http://www.sideralis.org/baobab/


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

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

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

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

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

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

person markus    schedule 07.11.2008

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

person CharlyBr    schedule 23.01.2012
comment
Не могу найти никаких документов, и модульные тесты еще не написаны. Последнее обновление 2 года назад. Этот проект заброшен? - person Znarkus; 07.05.2012

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

person fpietka    schedule 29.08.2014

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

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

person Kim Pepper    schedule 06.02.2017