4

管理対象オブジェクトに関する情報を保持するためにSplObjectStorageを使用しています。SplObjectStorageオブジェクトが破壊されたときに、外部参照がなくなったオブジェクトを自動的にクリーンアップしたいと考えています。

現在、これには 2 つのオプションしかありません。

  • 管理対象オブジェクトのデストラクタにストレージへの参照を削除するよう通知させる。これらのオブジェクトはマネージャーを認識する必要がないため、これは受け入れられません。
  • debug_zval_dump()を解析して参照カウントを取得します。同様に受け入れられません。私見は、深刻なアプリケーションにはあまりにも「ハック」です。

他のアイデアはありますか?

4

1 に答える 1

0

イベントを使用して、必要な機能の実装を試みることができます。各管理対象オブジェクトは破棄時にイベントを生成し、オブジェクトマネージャーはこのイベントでサブスクライブされるため、SplObjectStorageからオブジェクトへの参照を削除できます。

于 2011-07-12T05:59:32.563 に答える