ReflectionClass::resetAsLazyProxy
オブジェクトをリセットしてレイジーとしてマークする
説明
public void ReflectionClass::resetAsLazyProxy(object $object
, callable $factory
, int $options
= 0)
このメソッドの動作は、
ReflectionClass::resetAsLazyGhostと同じですが、
プロキシ戦略を使用します。
object
自体がプロキシになります。
ReflectionClass::resetAsLazyGhostと同様に、
オブジェクトは他のものに置き換えられず、初期化後もその同一性は
変わりません。プロキシと実インスタンスは別々のオブジェクトであり、
別々の実体を持ちます。
パラメータ
-
object
-
非レイジーなオブジェクト、または初期化されたレイジーオブジェクト。
-
factory
-
ReflectionClass::newLazyProxyと
同じシグネチャと目的を持つファクトリコールバック。
-
options
-
options
には
以下のフラグを組み合わせて指定できます:
-
ReflectionClass::SKIP_INITIALIZATION_ON_SERIALIZE
-
デフォルトでは、レイジーオブジェクトのシリアライズは
初期化がトリガーされます。このフラグを設定すると、
初期化せずにシリアライズできるようになります。
-
ReflectionClass::SKIP_DESTRUCTOR
-
デフォルトでは、オブジェクトをレイジーにする前に、そのデストラクタが(存在すれば)
呼び出されます。これは、オブジェクト内の既存の状態に関する安全性を提供します。
このフラグはその動作を無効にし、デストラクタを呼び出さずにオブジェクトを
レイジーとしてリセットできるようにします。
エラー / 例外
オブジェクトがレイジーで未初期化の場合、ReflectionExceptionを
スローします。
オブジェクトが初期化中である場合、またはforeachで
プロパティが反復処理されている場合、Errorを
スローします。
参考
- ReflectionClass::newLazyProxy
- ReflectionClass::resetAsLazyGhost