echo $begrüßung;
Also soll ich den Connect nicht automatisch mit dem Aufruf des Singleton machen? Weil ich mein, wenn ich das Singleton aufbaue, dann will ich auch die Verbindung haben. Logisch.
Jein. So logisch ist das am Ende nicht in jedem Fall. Wenn du für den Anfang den Verbindungsaufbau im Konstruktor (oder anders gesagt: beim erstmaligen Anfordern der Instanz) erledigst, ist das in Ordnung. Das ist dann etwas einfacher zu implentieren als ein Lazy Connect.
Aber mal angenommen, es gäbe Methoden, die keine Verbindung brauchen und weiterhin angenommen, dass in einem Request nur solche Methoden verwendet werden, dann wäre der Verbindungsaufbau umsonst. Oder eine Codeteil fordert die Instanz an, macht aber erst noch was länger dauerndes bevor er zur Datenabfrage kommt, dann belegte die Verbindung schon eine ganze Weile umsonst die Ressourcen. In beiden Fällen wäre ein Lazy Connect eine feine Sache. Lassen wir es also der Einfachheit halber beim Connect im Konstruktor.
Also soll die Zuweisung in der ini stattfinden.
Soll nicht unbedingt, war nur ein Vorschlag.
Sprich es steht dort z.b. drin:
db->_db_host="localhost";
? Oder wie?
So ähnlich. Beispiele für das ini-Format findest du im Handbuch bei der Funktion parse_ini_file().
Macht das groß einen Unterschied? Ist das nicht latte ob das ne PHP oder ini-Datei ist?
Eine ini-Datei ist einfacher zu warten, weil ihre Syntaxregeln nicht so komplex sind wie die von PHP. Du kannst auch in einer PHP-Datei Variablen setzen, wenn dir das besser gefällt.
» Wenn Fehler beim RUDI auftreten, sollten diese durch Rückgabewert oder Exception weitergemeldet werden. Reagieren und gegebenenfalls Maßnahmen treffen obliegt dem Verwender. Er muss sowieso drauf gefasst sein, dass Fehler auftreten. Einfach weiter machen wird nicht möglich sein, denn dazu fehlen ja die Daten, die man eigentlich dazu benötigte. Also muss ein alternativer Weg gegangen werden und damit hast du eine Fallunterscheidung (oder ein try-catch bei Exceptions).
Und weiter?
Diese Antwort ist so pauschal nicht möglich sondern muss für jeden Anwendungsfall individuell gefunden werden. Du musst dir dazu überlegen, was im Fehlerfall für den Anwender das Beste ist und was du als Admininistrator zum Fehler brauchst. Diese Überlegungen solltest du dann in Code umsetzen.
Ich hatte ja das Beispiel mit dem bereits vorhandenen Benutzernamen gebracht. In dem Fall benötigt der Anwender eine Information, dass er einen neuen Namen wählen muss und der Admin braucht nichts. Wenn generell die Verbindung ausgefallen ist, braucht der Anwender eine Tröstmeldung und beispielsweise Anweisungen, wie er trotzdem seine Bestellung loswerden kann. Der Admin braucht eine Sofortbenachrichtigung, damit er das System wieder in Gang bringt und keine weiteren Kunden verärgert werden. Fortsetzbar mit beliebigen Szenarien ...
echo "$verabschiedung $name";