Hallo Leute.
Ich schreibe gerade ein Wenig mit PHP5 rum und habe jetzt zwei Fragenbereiche:
Thema I:
Ich habe eine Klasse aus statischen Methoden und Eigenschaften (PHP5!), die mir bestimmte, im Progammablauf öfter benötigte, Objekte global zur Verfügung stellt und unter Anderem erst bei Bedarf instantiiert. Z.B. eine Datenbank Abstraktion (PEAR DB, ADOdb), einen Logger (PEAR Log) usw.
Ich bekomme also z.B. mit "$db = Devices::getDB();" das Datenbank-Objekt und bleibe somit immer bei einer Instanz.
1. Ist der Ansatz ganz allgemein sinnvoll (besonders das Festhalten der Instanzen in den statischen Eigenschaften)?
2. Da ich alles gerne sehr ordentlich benannt haben möchte schwanke ich zwischen zwei Arten die Instanzen abzurufen. Zum einen, für jedes Objekt eine eigene Methode (getDB(), getLog(), ...) oder eine Methode für alle (singleton('db'), singleton('log'), ...). Das erste sieht im Quelltext besser aus, das zweite legt den Sinn und Hintergrund des Aufrufs besser dar. Gibt es andere Gründe die für das Eine oder das Andere sprechen?
Thema II:
Wenn ich eine bestimmte Klasse in meinem Programm sowieso nur einmal instantiieren würde, macht es dann sinn alle Methoden und Eigenschaften statisch zu halten, einfach keine Instanz zu erstellen und mit den statischen Eigenschaften zu arbeiten (wie ich es im oberen Fall ja mache)?
Ich bedanke mich bei denen die sich Zeit nehmen diese Fragen zu klären. :-)
Grüsse, Lucien