Pregunta

Estoy buscando una clase de conjuntos anidados PHP (con MYSQL) con todas las funciones necesarias. Por ejemplo:

createLeftNode, createRightNode, createRootNode, createSubNode, deleteNode y moveTree . No solo 1 izquierda, 1 derecha, 1 arriba y 1 abajo, sino también una parte de un árbol en otro árbol.

¡Gracias!

¿Fue útil?

Solución

Los conjuntos bien anidados son excelentes si está trabajando con datos jerárquicos. Es mucho más complejo implementarlo solo con matrices php, especialmente si desea guardar esta información en una base de datos.

podrías probar esto. Nunca lo usé, pero después de una breve detección de código parece casi completo.

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

Otros consejos

mire el comportamiento anidado de Doctrine

Hay algo nuevo en torno a: http://www.sideralis.org/baobab/


Respuesta antigua y desactualizada. La biblioteca ya no es compatible.

Utilicé la biblioteca nstrees " buggzzy " publicado ( http://www.edutech.ch/contribution/nstrees/index.php ) para un proyecto en el que tenía que darle al usuario la posibilidad de crear y editar el organigrama de su empresa.

Me gusta el " Recorrido de árbol de pedido anticipado modificado " algoritmo mucho pero me parece que la biblioteca nstree es lenta. En mi caso, tengo que iterar recursivamente por el árbol. Tal vez es algo más en mi script que es lento.

De todos modos, todavía estoy buscando una alternativa y recientemente revisé el sitio web de PEAR y encontré una biblioteca en árbol allí también: http://pear.php.net/package/Tree

La biblioteca PEAR no parecía tan completa como NSTREE, pero supongo que podría ser más eficiente.

Un artículo que me ayudó mucho con esta pregunta: Almacenamiento de datos jerárquicos en un Base de datos

Mire esta biblioteca https://github.com/fpietka/Zend-Nested-Set : Implementación de un modelo de conjunto anidado para usar con Zend Framework

Hace mucho tiempo, pero actualicé https://github.com/fpietka/Zend- Conjunto anidado (incluso con pruebas unitarias).

Escribí una implementación de conjunto anidado que usa Doctrine DBAL como la capa de abstracción de la base de datos. Como lo estamos utilizando con Drupal, también rastrea un revision_id .

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top