Domanda

Sto cercando una classe di insiemi nidificati PHP (con MYSQL) con tutte le funzioni necessarie. Ad esempio:

createLeftNode, createRightNode, createRootNode, createSubNode, deleteNode e moveTree . Non solo 1 a sinistra, 1 a destra, 1 in alto e 1 in basso, ma anche una parte di un albero in un altro albero.

Grazie!

È stato utile?

Soluzione

I set ben nidificati sono fantastici se si lavora con dati gerarchici. È molto più complesso implementarlo solo con matrici php, specialmente se si desidera salvare queste informazioni in un database.

puoi provare questo. Non l'ho mai usato, ma dopo uno screening di codici brevi sembra quasi completo.

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

Altri suggerimenti

guarda comportamento nidificato di Dottrina

C'è qualcosa di nuovo in giro: http://www.sideralis.org/baobab/


Risposta vecchia e obsoleta. La libreria non è più supportata.

Ho usato la libreria nstrees " buggzzy " pubblicato ( http://www.edutech.ch/contribution/nstrees/index.php ) per un progetto in cui ho dovuto dare all'utente la possibilità di creare e modificare l'organigramma della sua azienda.

Mi piace il " Traversal Tree Preorder modificato " algoritmo molto, ma mi sembra che la libreria nstree sia lenta. Nel mio caso, devo ripetere in modo ricorsivo l'albero. Forse è qualcos'altro nella mia sceneggiatura che è lento.

Comunque sto ancora cercando un'alternativa e di recente ho controllato il sito web PEAR e ho trovato lì anche una libreria ad albero: http://pear.php.net/package/Tree

La libreria PEAR non sembrava completa come NSTREE ma suppongo che potrebbe essere più performante.

Un articolo che mi ha aiutato molto con questa domanda: Archiviazione di dati gerarchici in un Database

Guarda questa libreria https://github.com/fpietka/Zend-Nested-Set : Implementazione di un modello di set nidificato da utilizzare con Zend Framework

Era atteso da tempo, ma ho aggiornato https://github.com/fpietka/Zend- Set nidificato (anche con unit test).

Ho scritto un'implementazione di set nidificati che utilizza Doctrine DBAL come livello di astrazione del database. Poiché lo stiamo usando con Drupal, tiene traccia anche di un revision_id .

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top