Christian Kruse: Objekt einer Klasse in anderer Klasse nutzen

Beitrag lesen

你好 Markus,

Dazu möchte ich auch das Objekt der Datenbankklasse verwenden. ICh möchte
keine Globalen Variablen nutzen und würde sie ungern an das Objekt der
Datenbankklasse an die Sessionklasse übergeben. Leider habe ich immernoch
keine lösung dafür. Kann mir jemand weiterhelfen?

Für solche Probleme gibt es das Design-Pattern „Singleton“. Das sorgt
dafür, dass nur eine Instanz einer Klasse existieren kann. Dazu musst du
allerdings bei PHP Disziplin aufbringen, du darfst dann nämlich den
Konstruktor nicht mehr direkt benutzen! Ich gebe dir mal eine
Beispiel-Implementation:

  
class singleton {  
  function sigleton($host,$user,$pass,$db) {  
    # mach was, Verbindung herstellen, etc, pp  
  }  
  
  function getInstance($host,$user,$pass,$db) {  
    static $instance;  
  
    if(!isset($instance)) $instance = new sigleton($host,$user,$pass,$db);  
  
    return $instance;  
  }  
}  

Jetzt kannst du an jeder Stelle deines Codes die gleiche Instanz deiner
Datenbank-Klasse bekommen, indem du getInstance() aufrufst:

  
$db =& singleton::getInstance("param1","param2","param3","param4");  

再见,
 克里斯蒂安

--
Opera 8.10 für Gentoo über Portage | Glückwunsch zum Geburtstag, Daniela!
Ich bewundere wirklich den Sinn der Bienen für kollektive Verantwortung. Obwohl sich einzelne Bienen hin und wieder bekämpfen, herrscht zwischen Ihnen grundsätzlich ein starkes Gefühl für Eintracht und Zusammenarbeit. Wir Menschen gelten als sehr viel weiter entwickelt, doch mitunter rangieren wir sogar hinter kleinen Insekten.
http://wwwtech.de/