Я ищу класс вложенных наборов PHP (с MYSQL) со всеми необходимыми функциями. Например:
createLeftNode, createRightNode, createRootNode, createSubNode, deleteNode и moveTree. Не только 1 слева, 1 справа, 1 вверху и 1 внизу, но и часть дерева в другом дереве.
Спасибо!






Хорошо вложенные наборы хороши, если вы работаете с иерархическими данными. Гораздо сложнее реализовать это только с массивами 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
Не могу найти никаких документов, и модульные тесты еще не написаны. Последнее обновление 2 года назад. Этот проект заброшен?
Это было давно пора, но я обновил https://github.com/fpietka/Zend-Nested-Set (даже с юнит-тестами).
Я написал реализацию вложенного набора, которая использует Doctrine DBAL в качестве уровня абстракции базы данных. Поскольку мы используем его с Drupal, он также отслеживает revision_id.
Эта библиотека больше не поддерживается, похоже, что на «рынке» появилось что-то новое. Смотрите мой ответ.