Hallo miteinander,
Also wenn du mit mehreren Klassen arbeiten willst....solltest du mit Singleton patterns arbeiten.
Das funktioniert ungefähr so.
Z.b. in der index.php lädst du die Klasse singleton.php und startest ein neues Object dieser Klasse:
$singelton = new singleton();
Ich glaub du bringst Singleton und Registry Pattern durcheinander. Denn man benutzt ja den Singleton Pattern, um gerade nicht jedesmal mit
new eine neue Instanz der Klasse zu erzeugen.
Beispiel für einen möglichen Singleton Pattern:
PHP:
static public function getInstance() {
if(self::$thisInstance == null) {
self::$thisInstance = new ClassName();
}
return self::$thisInstance;
}
Der Aufruf erfolgt dann über
ClassName::getInstance(). Dadurch ist dann sicher gestellt, dass nur genau eine Instanz erzeugt wird.
So in dieser Klasse kannste jezsozusagen Die Objecte der anderen Klassen speichern...
z.b. einer MYSQL und einer Template Klasse.
so und jez musste halt in den Klassen in den z.b. mysql verfügbar sein muss die Objecte wieder laden.
Die Klasse, die die Instanzen verwaltet, ist ein Registry Pattern. Dieser bietet Methoden, um erzeugte Instanzen zu registrieren, löschen, ermitteln und zu überprüfen, ob schon eine Instanz einer bestimmten Klasse vorhanden ist.
Die Registry-Klasse verwendet meistens einen Singleton Pattern, um eine globale Registry zu gewährleisten.
Radhad, ich habe ebenfalls angefangen ein objektorientiertes Forum zu programmieren, da es bei den Forensystemen, die ich mir angeschaut habe, nicht mit so einfach war, sie in eine bestehende Webseite zu integrieren. Ich habe meine Gedanken zur Objektstruktur mal grafisch in Form eines Diagrammes zusammengefasst (siehe Anhang).
Die index.php erhält zunächst die benötigten Daten (DB-Logindaten etc.) aus der Konfigurationsdatei. Danach werden die Klassen, die sowohl von der Webseite selber als auch von anderen Klassen verwendet werden, initiiert und dann beim globalen Registry-Object registriert.
In meinen Überlegungen wären das die Klasse für die Datenbankanbindung, die Template-Engine und eine Klasse zur Verwaltung der Benutzer, damit für Webseite und beispielsweise Forum, die gleichen User-Informationen und Einstellungen benutzt werden.
Dann werden die spezifischen Klassen erzeugt (Forum, Gästebuch, Counter usw.), welche sich dann im Konstruktor die benötigten Instanzen über die Registry holen.
Nach dieser Struktur würde ich das momentan machen, lasse mich aber gerne einer besseren Variante belehren.
Gruß
Marvin