Hallo zusammen,
ich habe mich hier angemeldet, da ich anhand der Themen davon ausgehe, dass viele sich mit den Problemen und Methoden (mit denen ich gerade zu kämpfen hab) auskennen und mit weiterhelfen können.
Mein Problem liegt eher am Design und zwar an der Wiederverwendbarkeit einzelner Komponenten.
In meinem derzeitigem Projekt verwende ich ein sog. Backend mit folgenden Modulen (Auszug):
- Cache
- Session
- Database
Alle Module sollen nur jeweils einmal initialisiert werden. Dazu habe ich seither ein Singelton-Pattern verwendet:
Mein Problem bei dieser Methode ist, dass es mmn. zuviele function-calls verursacht (genauso wie ein Registry-Pattern), welche ich gerne vermeiden möchte um die Laufzeit (bzw. den Stack) möglichst gering zu halten.
Mein zweiter Versuch war, diese Module anhand meines MVC-Musters direkt in die Controller zu importieren:
Doch damit konnte ich mich irgendwie auch nicht richtig anfreunden. Zudem benötigt z.B. das Modul Session eine Instanz der Klasse Database und das Modul Cache eine Instanz der Klasse Session (wegen Benutzer spezifischen Sachen wie userID oder langID usw usf.).
Meine Frage nun an auch: Wie handlet Ihr euer Backend und welches Pattern ist das sinnvollste?
Ich hab mir zu diesem Thema schon einige Quelltexte angesehen. Aber leider setzen viele eben noch nicht auf php5 (geschweige denn php5.3). Im WBB3 arbeitet man mit einer verfremdeten Version des Registry-Pattern (WCF::getDB() etc.), doch da könnte man im Grunde auch direkt ein Singelton implementieren.
Im Grunde geht es mir darum, einen guten Kompromiss von Performace und Usabiliy zu finden.
// Ich verwende KEIN fertiges Framework
ich habe mich hier angemeldet, da ich anhand der Themen davon ausgehe, dass viele sich mit den Problemen und Methoden (mit denen ich gerade zu kämpfen hab) auskennen und mit weiterhelfen können.
Mein Problem liegt eher am Design und zwar an der Wiederverwendbarkeit einzelner Komponenten.
In meinem derzeitigem Projekt verwende ich ein sog. Backend mit folgenden Modulen (Auszug):
- Cache
- Session
- Database
Alle Module sollen nur jeweils einmal initialisiert werden. Dazu habe ich seither ein Singelton-Pattern verwendet:
PHP-Code:
public function indexAction()
{
$db = Database::getInstance();
$db->query('...');
}
Mein zweiter Versuch war, diese Module anhand meines MVC-Musters direkt in die Controller zu importieren:
PHP-Code:
// abstract controller
public function __contruct()
{
$this->db = new Database();
}
PHP-Code:
// index-controller
public function indexAction()
{
$this->db->query('...');
}
Meine Frage nun an auch: Wie handlet Ihr euer Backend und welches Pattern ist das sinnvollste?
Ich hab mir zu diesem Thema schon einige Quelltexte angesehen. Aber leider setzen viele eben noch nicht auf php5 (geschweige denn php5.3). Im WBB3 arbeitet man mit einer verfremdeten Version des Registry-Pattern (WCF::getDB() etc.), doch da könnte man im Grunde auch direkt ein Singelton implementieren.
Im Grunde geht es mir darum, einen guten Kompromiss von Performace und Usabiliy zu finden.
// Ich verwende KEIN fertiges Framework
Kommentar