搜索最好的PHP嵌套集类(不包括PEAR类)

时间:2008-11-07 13:04:19

标签: php class nested set nested-sets

我正在寻找一个带有所有需要函数的PHP(带有MYSQL)嵌套集类。 例如:

createLeftNode,createRightNode,createRootNode,createSubNode,deleteNode和 moveTree 。不仅有1个左边,1个右边,1个向上和1个向下,还有一个树的一部分在另一棵树中。

谢谢!

6 个答案:

答案 0 :(得分:7)

查看Doctrine的nested behavior

答案 1 :(得分:4)

如果您正在处理分层数据,那么嵌套好的集合就很棒。仅使用php数组实现它要复杂得多,特别是如果你想将这些信息保存在数据库中。

你可以试试这个。从未使用它,但经过短暂的代码筛选后,它看起来几乎完整。

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

答案 2 :(得分:2)

有一些新的东西:http://www.sideralis.org/baobab/


陈旧而过时的答案。该库不再受支持。

我使用 nstrees库“buggzzy”发布(http://www.edutech.ch/contribution/nstrees/index.php)作为一个项目,我必须让用户可以创建和编辑他公司的组织结构图。< / p>

我非常喜欢“修改过的Preorder Tree Traversal ”算法,但在我看来,nstree库很慢。在我的情况下,我必须递归迭代树。也许这是我脚本中的其他内容很慢。

无论如何我还在寻找替代方案,我最近检查了PEAR网站,并在那里找到了一个树库:http://pear.php.net/package/Tree

PEAR图书馆似乎不像NSTREE那样全面,但我认为它可能更具性能。

这篇文章对我提出了很多帮助:Storing Hierarchical Data in a Database

答案 3 :(得分:1)

看看这个图书馆https://github.com/fpietka/Zend-Nested-Set实现与Zend Framework一起使用的嵌套集模型

答案 4 :(得分:0)

它早就应该了,但我更新了https://github.com/fpietka/Zend-Nested-Set(即使是单元测试)。

答案 5 :(得分:0)

我编写了一个使用Doctrine DBAL作为数据库抽象层的嵌套集实现。因为我们将它与Drupal一起使用,它还会跟踪revision_id

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