最適なPHPネストセットクラスの検索(PEARクラスは除外)
-
07-07-2019 - |
質問
必要なすべての機能を備えたPHP(MYSQLを使用)ネストセットクラスを探しています。 例:
createLeftNode、createRightNode、createRootNode、createSubNode、deleteNode、および moveTree 。左1つ、右1つ、上1つ、下1つだけでなく、他のツリーのツリーの一部も。
ありがとう!
解決
階層データで作業している場合、よくネストされたセットは素晴らしいです。特にこれらの情報をデータベースに保存する場合は、PHP配列のみで実装するのがはるかに複雑です。
これを試すことができます。使用したことはありませんが、短いコードスクリーニングの後、ほぼ完全に見えます。
他のヒント
新しいものがあります: http://www.sideralis.org/baobab/
古くて時代遅れの答え。ライブラリはもうサポートされていません。
nstreesライブラリ" buggzzy"を使用しました投稿( http://www.edutech.ch/contribution/nstrees/index.php )ユーザーの会社の組織図を作成および編集できるようにする必要があるプロジェクトの場合。
" 修正された先行予約ツリートラバーサル"アルゴリズムは非常に多いですが、nstreeライブラリは遅いように思えます。私の場合、ツリーを再帰的に繰り返す必要があります。多分それは私のスクリプトの他の何かが遅いのです。
とにかく、私はまだ代替手段も探しています。最近PEARのWebサイトを確認し、そこにもツリーライブラリを見つけました: http://pear.php.net/package/Tree
PEARライブラリはNSTREEほど包括的ではないように見えましたが、よりパフォーマンスが高いと思われます。
この質問で私を大いに助けた記事:階層データの保存データベース
このライブラリを見る https://github.com/fpietka/Zend-Nested-Set : Zend Frameworkで使用するネストされたセットモデルの実装
長い間延期されましたが、 https://github.com/fpietka/Zend-を更新しましたネストされたセット(単体テストでも)。
データベース抽象化レイヤーとしてDoctrine DBALを使用するネストされたセット実装を書きました。 Drupalで使用しているため、 revision_id
も追跡します。