echo $begrüßung;
- Eigenschaften der Klasse sollten nicht public sein
Das kann man so sehen, muss man aber nicht prinzipiell. Eine Zugriffsmethode ist immer zusätzlicher Code, der Laufzeit verbraucht. Wenn abzusehen ist, dass der Code der Zugriffsmethode nichts anderes machen wird als return $this->private_variable; kann man sich die Erhöhung der (Code-)Komplexität, ohne dass man dabei was gewinnt, sparen.
- Der Konstruktor sollte die wichtigste Aufgabe der Klasse bei der Instantiierung übernehmen,
also hier das Beschaffen der Zugangsdaten und den Erstaufbau der Datenbank-Verbindung.
Nein, nicht prinzipiell. Die Datenbankverbindung kann auch lazy erstellt werden, also erst dann, wenn sie wirklich gebraucht wird. Im Falles des Singleton-Patterns muss man sich andere Gedanken um die Beschaffung der Zugangsdaten machen. Es ist nicht unbedingt die Aufgabe des anwendenden Codes, die Zugangsdaten zu kennen. Vielmehr sollte sich die DB-Klasse die Zugangsdaten selbst holen, beispielsweise aus einer Konfigurationsdatei.
- Der Destruktor sollte für ein geeordnetes Lebensende der Klasse sorgen, also hier das
Beenden der Datenbankverbindung.
Der wird sowieso erst am Scriptende aufgerufen und da wird die DB-Verbindung automatisch geschlossen. (Gilt zumindest für PHP.)
echo "$verabschiedung $name";