Я ищу PHP (с MYSQL) вложенный набор классов со всеми необходимыми функциями. Например:
createLeftNode, createRightNode, createRootNode, createSubNode, deleteNode и moveTree . Не только 1 левый, 1 правый, 1 вверх и 1 вниз, но также часть дерева в более ничтожном дереве.
Благодаря!
Вложенные наборы отлично, если вы работаете с иерархическими данными. Его гораздо сложнее реализовать только с помощью 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
.