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

Searching for the best PHP nested sets class (PEAR class excluded)

提问人:user35459 提问时间:11/7/2008 最后编辑:user35459 更新时间:2/7/2017 访问量:14156

问:

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

createLeftNode、createRightNode、createRootNode、createSubNode、deleteNode 和 moveTree。不仅是 1 个左、1 个右、1 个向上和 1 个向下,而且是另一棵树中一棵树的一部分。

谢谢!

php 套集

评论


答:

4赞 buggzzy 11/7/2008 #1

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

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

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

评论

0赞 markus 11/6/2011
这个库不再受支持,似乎“市场”上有新的东西。看我的答案。
7赞 Tom Haigh 11/7/2008 #2

看看 Doctrine 的嵌套行为

2赞 markus 11/7/2008 #3

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


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

我在一个项目中使用了 nstrees 库“buggzzy”(http://www.edutech.ch/contribution/nstrees/index.php),在这个项目中,我必须让用户能够创建和编辑其公司的组织结构图。

我非常喜欢“修改后的预排序树遍历”算法,但在我看来,nstree 库很慢。就我而言,我必须递归地沿着树进行迭代。也许是我剧本中的其他东西很慢。

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

PEAR 库似乎不像 NSTREE 那样全面,但我认为它可以更高性能。

一篇文章对这个问题有很大帮助:在数据库中存储分层数据

1赞 CharlyBr 1/24/2012 #4

看看这个库 https://github.com/fpietka/Zend-Nested-Set: 实现一个嵌套集合模型,用于 Zend Framework

评论

1赞 Markus Hedlund 5/7/2012
找不到任何文档,并且尚未编写单元测试。最后更新于 2 年前。这个项目被放弃了吗?
0赞 fpietka 8/29/2014 #5

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

0赞 Kim Pepper 2/7/2017 #6

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

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