2008-11-07 4 views

Répondre

4

Les jeux bien imbriqués sont parfaits si vous travaillez avec des données hiérarchiques. Il est beaucoup plus complexe de l'implémenter uniquement avec les tableaux php, surtout si vous voulez enregistrer ces informations dans une base de données.

vous pouvez essayer cela. Jamais utilisé, mais après un filtrage de code court, il semble presque terminé.

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

+0

Cette bibliothèque n'est plus supportée, il semble qu'il y a de nouveaux trucs sur le «marché». Vois ma réponse. – markus

2

Il y a quelque chose de nouveau autour de: http://www.sideralis.org/baobab/


réponse vieux et dépassé. La bibliothèque n'est plus supportée.

J'ai utilisé la bibliothèque nstrees « buggzzy » posté (http://www.edutech.ch/contribution/nstrees/index.php) pour un projet où je devais donner à l'utilisateur la possibilité de créer et de modifier l'organigramme de son entreprise.

J'aime beaucoup l'algorithme "Modified Preorder Tree Traversal" mais il me semble que la bibliothèque nstree est lente. Dans mon cas, je dois itérer récursivement dans l'arbre. Peut-être que c'est quelque chose d'autre dans mon script qui est lent.

Quoi qu'il en soit, je suis aussi toujours à la recherche d'une alternative et moi avons récemment vérifié le site de PEAR et a trouvé une bibliothèque d'arbres là aussi: http://pear.php.net/package/Tree

La bibliothèque PEAR ne semblait pas aussi complet que NSTREE mais je suppose qu'il pourrait être plus performant.

Un article qui m'a beaucoup aidé avec cette question: Storing Hierarchical Data in a Database

1

Regardez cette bibliothèque https://github.com/fpietka/Zend-Nested-Set: mise en œuvre d'un modèle de jeu imbriqué à utiliser avec Zend Framework

+1

Impossible de trouver les documents et les tests unitaires ne sont pas encore écrits. Dernière mise à jour il y a 2 années. Ce projet est-il abandonné? – Znarkus

0

J'ai écrit une implémentation de jeu imbriqué qui utilise Doctrine DBAL comme couche d'abstraction de base de données. Parce que nous l'utilisons avec Drupal, il suit également un revision_id.

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