Pergunta

Eu estou procurando um PHP (com MYSQL) classe conjuntos aninhados com todas as funções necessárias. Por exemplo:

createLeftNode, createRightNode, createRootNode, createSubNode, deleteNode e MoveTree . Não apenas 1 à esquerda, 1 direita, 1 para cima e 1 para baixo, mas também uma parte de uma árvore em uma árvore nother.

Obrigado!

Foi útil?

Solução

conjuntos Bem aninhados são grandes, se você está trabalhando com dados hierárquicos. É muito mais complexo para implementá-lo apenas com matrizes PHP especialmente se você deseja salvar essas informações em um banco de dados.

você poderia tentar isto. Nunca usei, mas após a triagem de um código curto que parece quase completa.

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

Outras dicas

olhada na aninhada comportamento de Doutrina

Não é algo novo em torno de: http://www.sideralis.org/baobab/


Old e ultrapassada resposta. A biblioteca não é suportado mais.

Eu usei o nstrees biblioteca "buggzzy" postado ( http://www.edutech.ch/contribution/nstrees/index.php ) para um projeto onde eu tinha que dar ao usuário a possibilidade de criar e editar o organograma de sua empresa.

I como o " Modificado Preorder Árvore Traversal " algoritmo muito, mas parece-me que a biblioteca nstree é lento. No meu caso eu tenho que iterar recursivamente a árvore. Talvez seja outra coisa no meu script que é lento.

De qualquer forma eu também estou ainda à procura de uma alternativa e eu recentemente verificado o site da PEAR e encontrou uma biblioteca árvore lá também: http://pear.php.net/package/Tree

A biblioteca PEAR não parecia tão abrangente quanto NSTREE mas presumo que poderia ser de maior performance.

Um artigo que me ajudou muito com esta pergunta: Armazenando dados hierárquicos em um banco de dados

Olhe para esta biblioteca https://github.com/fpietka/Zend-Nested-Set : A implementação de um modelo de conjunto aninhado de usar com Zend Framework

Foi há muito tempo, mas eu atualizei https://github.com/fpietka/Zend- nested-Set (mesmo com testes de unidade).

Eu escrevi uma implementação de conjunto aninhado que usa Doutrina DBAL como a camada de abstração de banco de dados. Porque nós estamos usando-o com Drupal, que também controla a revision_id.

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top