5

このトピックに関する多くの質問を見てきましたが、どれも私のケースをカバーしていません。

5 つのクラスに基づいて ACL モジュールを構築しています。

  1. 役割
  2. 特権
  3. グループ
  4. ラッパー (それが何をするのか推測してください..) 特権、役割、およびグループ クラスのファクトリ
  5. グループ/ロールの AccessList ストア (使用法とケースに基づく)

SplQueue を使用して権限レベルを格納することを考えています (主に継承された権限用)。したがって、単一のオブジェクトを使用してすべてを格納することを考えており、通常の多次元配列が最適な選択になるとは思いません。流れはこのような貼り付けになります、TL;DRです..申し訳ありません。

私の質問は、私の場合、SplQueue はやり過ぎになるのでしょうか?

別の Spl データ構造を使用する必要がありますか? もしそうなら、どれを使用しますか?

編集 さて、私は使用法の良い例を思いつかなかったので、UNIX ベースの GBAC にとどめましょう。

4

1 に答える 1

4

データをオブジェクト フォームに保存する場合は、SplObjectStorage. SplQueue は、小さな配列ではやり過ぎです。

SplQueue は FIFO で動作します。

そのため、最後または最後に近いものに直接アクセスすることはできず、時間がかかります。

代わりにSplQueue、配列インデックスを使用して任意の要素に直接アクセスできるため、配列を使用することをお勧めします。

この質問の答えを確認することもできます:連想配列と SplObjectStorage

また、SPLobjectStorage と配列のパフォーマンスを確認することもできます。コードは次のとおりです。

詳細については、こちらをご覧ください

SplObjectStorage は確実に直線的にスケーリングされます。配列のパフォーマンスは、データセットが小さいほど予測しにくくなりました (標準偏差が大きくなりました)。そして、SplObjectStorage は確かに、セット内に多数のオブジェクトを格納するための優れたソリューションです。

したがって、データが小さい場合は配列を使用する必要があります。それ以外の場合は、SplObjectStorage大量のデータに使用します。

于 2013-07-29T11:03:19.093 に答える