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

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

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

Спасибо!

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
6
0
13 931
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

Ответ принят как подходящий

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

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

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

Эта библиотека больше не поддерживается, похоже, что на «рынке» появилось что-то новое. Смотрите мой ответ.

markus 06.11.2011 01:07

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

Есть что-то новенькое вокруг: 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 года назад. Этот проект заброшен?

Znarkus 07.05.2012 17:01

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

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

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

Другие вопросы по теме