2011-10-21 15 views
1

私はいくつかのオブジェクトの構造を含むXMLファイルを持っています。オブジェクトは次のようになります。PHP XMLのパフォーマンスとシリアル化()

class Object: 
{ 
    private $name; 
    private $info; 
    private $$items; 
} 

ここで、$ itemsはオブジェクトの配列なので再帰的です。 今のところ、アイテムをリストしなければならないときは、simplexmlを使って要素内で反復処理して表示します。 私の質問は次のとおりです:

1)私はXMLを解析し、純粋なXMLを扱うのではなくオブジェクトに変換すると、ページの全体的なパフォーマンスに多大な影響を与えますか?ユーザーがロードするすべてのページがアイテムをロードする必要があることを考慮すると、速度が低下するでしょうか?

2)私は’のように再帰的なオブジェクトを直列化することをお勧めしますか?

答えて

2

SimpleXMLはリソースとみなされているため、シリアライズできません。しかし、$sx->toXML();の出力を簡単に取得してシリアライズすることができます。シリアライズ解除したら、SimpleXMLElementを再構築します。

非常に大きなXMLツリーで作業していない限り、XMLの再解析のパフォーマンスの違いはあまりありません。あなたのオブジェクトに関しては

、あなたはまた、それぞれ、シリアライズとアンシリアライズされる前に、あなたがオブジェクトを変更しないことができます__sleep()__wakeup()マジックメソッドを実装することができます。

あなたの再帰的なオブジェクトの例をシリアライズ

は、 __sleep()魔法の方法であなたの $$items変数を含めると __wakeupでそれを再実装していません。