Moin!
»» > »» - Der Destruktor sollte für ein geeordnetes Lebensende der Klasse sorgen, also hier das
»» > »» Beenden der Datenbankverbindung.
»» Mit der Verwendung von Destruktoren unter PHP muss man recht achtsam sein, denn "The destructor method will be called as soon as all references to a particular object are removed or when the object is explicitly destroyed or in any order in shutdown sequence.". Und ein Aufrufer wird nur in den seltesten Faellen mueszig genug sein und den Destruktor explizit aufrufen.Eben dies soll er ja auch gar nicht.
Das Problem ist aber, dass hier ein Lost Handle erzeugt werden würde, wenn nicht spätestens der Destruktor die Verbindung zur DB kappt. Das DB-Handle zu löschen, hebt die Verbindung mMn nicht auf.
Die DB-Verbindung wird am Skriptende gekappt, wenn man sie nicht explizit vorher löscht.
Ich würde dafür allerdings keinen Destruktor bemühen. Die Dinger sind, wie erwähnt, offensichtlich diffizil, und sollten für die Aufgaben vorbehalten bleiben, die wirklich wichtig sind. Mir fällt kein gutes Beispiel ein, aber das Beenden einer DB-Verbindung gehört nicht dazu.
- Sven Rautenberg