Buscando a classe melhor PHP conjuntos aninhados (classe PERA excluídos)
-
07-07-2019 - |
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!
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.
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
.