2008-11-07 37 views
6

Tôi đang tìm một lớp bộ lồng nhau PHP (với MYSQL) với tất cả các hàm cần thiết. Ví dụ:Tìm kiếm lớp bộ lồng nhau PHP tốt nhất (loại PEAR bị loại trừ)

createLeftNode, createRightNode, createRootNode, createSubNode, deleteNode và moveTree. Không chỉ 1 trái, 1 phải, 1 lên và 1 xuống mà còn là một phần của một cái cây trong một cái cây thông.

Cảm ơn!

+0

tại sao loại trừ PEAR? – ftrotter

Trả lời

4

Bộ lồng nhau rất tuyệt nếu bạn đang làm việc với dữ liệu phân cấp. Nó phức tạp hơn nhiều để thực hiện nó chỉ với các mảng php đặc biệt là nếu bạn muốn lưu các thông tin này trong một cơ sở dữ liệu.

bạn có thể thử tính năng này. Không bao giờ sử dụng nó nhưng sau một đoạn mã ngắn, nó trông gần như hoàn chỉnh.

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

+0

Thư viện này không được hỗ trợ nữa, có vẻ như có nội dung mới trên 'thị trường'. Xem câu trả lời của tôi. – markus

2

Có một cái gì đó mới xung quanh: http://www.sideralis.org/baobab/


cũ và lỗi thời câu trả lời. Thư viện không được hỗ trợ nữa.

Tôi đã sử dụng thư viện n1rees nstrees "buggzzy" được đăng (http://www.edutech.ch/contribution/nstrees/index.php) cho một dự án mà tôi phải cung cấp cho người dùng khả năng tạo và chỉnh sửa biểu đồ tổ chức của công ty mình.

Tôi thích "Biến đổi cây đặt hàng trước" thuật toán rất nhiều nhưng dường như với tôi rằng thư viện nstree chậm. Trong trường hợp của tôi, tôi phải lặp lại đệ quy xuống cây. Có lẽ đó là một cái gì đó khác trong kịch bản của tôi mà là chậm.

Anyways tôi cũng vẫn đang tìm kiếm một sự thay thế và gần đây tôi đã kiểm tra trang web PEAR và tìm thấy một thư viện cây có quá: http://pear.php.net/package/Tree

Thư viện PEAR dường như không toàn diện như NSTREE nhưng tôi cho rằng nó có thể có hiệu quả hơn.

Một bài viết đó đã giúp tôi rất nhiều với câu hỏi này: Storing Hierarchical Data in a Database

1

Nhìn vào thư viện này https://github.com/fpietka/Zend-Nested-Set: Thực hiện một mô hình đặt lồng nhau để sử dụng với Zend Framework

+1

Không thể tìm thấy bất kỳ tài liệu và bài kiểm tra đơn vị nào chưa được viết. Cập nhật lần cuối 2 năm trước. Dự án này có bị bỏ không? – Znarkus

0

Tôi đã viết triển khai tập hợp lồng nhau sử dụng Doctrine DBAL làm lớp trừu tượng cơ sở dữ liệu. Bởi vì chúng tôi đang sử dụng nó với Drupal, nó cũng theo dõi một revision_id.

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

Các vấn đề liên quan