2010-10-04 4 views
0

Pour un projet j'ai quelques objets, une méthode consiste à charger l'entité parente.Est-il nécessaire de mettre en cache des objets?

Donc j'appelle la méthode comme ceci: $ this-> getDetails() -> getEntity();

Ainsi, le code de getEntity est:

public function getEntity() 
{ 
    if (isset($this->entity)) { 
    return $this->entity; 
    } else { 
    $mapper = new Crm_Mapper_Entity(); 
    return $this->entity = $mapper->find($this->customerId); 
    } 
} 

est-il nécessaire de charger l'entité dans l'attribut? Parce que quand je veux le charger sur un autre endroit, il ne devrait pas appeler le mappeur à nouveau.

Ou est-ce que quand il est chargé, l'objet est déjà en mémoire et je n'ai pas besoin de le mettre dans l'attribut?

Merci

Répondre

0

utilisation de motif singleton comme ceci:

class MyStatic{ 
    private static $instance; 

    private __construct(){} 

    public static getInstance(){ 

    if (!empty(MyStatic::$instance;)) { 
      return MyStatic::$instance; 
     } else { 
      $mapper = new Crm_Mapper_Entity(); 
      $thisMyStatic::$instance = $mapper->find($this->customerId); 
      return $thisMyStatic::$instance; 
     } 

    } 

} 
+0

Ne pas utiliser singleton. http://misko.hevery.com/2008/08/17/singletons-are-pathological-liars/ – dynamic

Questions connexes