salve a tutti...
ho una classe in cui è contenuta, tra le proprietà, una istanza dell'oggetto DOMDocument caricata con l'opportuno xml.
la maggior parte dei metodi implementati dalla classe lavora continuamente su questa istanza perciò mi farebbe molto comodo poterla creare una volta sola e restituirne una copia ogni qual volta essa viene richiesta, anzichè crerne una nuova ogni volta.
(premetto che un oggetto dentro ad un altro oggetto non persiste alla sessione, ed è per questo motivo che non istanzio la proprietà una volta per tutte nel costruttore ma sono costretto a ricrearla ad ogni chiamata di funzione).

per poter ottenere questa cosa ho pensato di ricreare una specie di variante del design pattern chiamato "Singleton".
questo pattern permette di controllare che non venga creata più di una istanza di una classe, e nel caso esista gia, ritorna un riferimento a questa invece di crearne una nuova.

La differenza è che il classico Singleton è riferito a tutta l'applicazione,
mentre a me serve che l'istanza dell'oggetto DOMDocument sia unica solo all'interno della classe che la contiene.

ecco il codice così come lo avevo pensato:
codice:
             protected $objXML=null;
             .....
	protected function loadObjXML(){
		if($this->objXML == null){	
			$this->objXML=new DOMDocument();
			$this->objXML->loadXML($this->xml);
		}
		return $this->objXML;
	}
purtroppo però la cosa non funziona...
alla prima chiamata tutto ok, ma dalla seconda in poi viene restituito un oggetto di tipo DOMDocument completamente vuoto, perchè non sopravvissuto alla sessione!!!
quindi il controllo if($this->objXML == null) non funziona perchè cmq un istanza dell'oggetto DOMDocument c'è... solo che è vuota!
come posso fare ad accorgermi di questo e ricreare l'istanza?
anch l'operatore "istanceof" è inutile in questo caso...

grazie mille a tutti
citrus