echo $begrüßung;
Glücklicherweise wurde ein Konzept entwickelt, um das Problem zu umgehen: Exceptions.
Damit "verlasse" ich aber die "Control", oder?
Was auch immer du unter Control verstehst ... Wenn eine Exception geworfen wurde wird der Programmfluss unterbrochen und beim sich zuständig fühlenden catch weitergemacht.
Nicht selten kommt es doch vielleicht vor, dass man
- entweder den Inhalt (also hier die Tabelle) anzeigen möchte
Rückgabewert: Inhalt
- Mitteilen möchte: "die Datei hat keinen Inhalt"
Rückgabewert: Inhalt, aber leer. Muss man gegebenenfalls im normalen Programmfluss fallunterscheiden. Wenn leerer Inhalt aber als Fehler eingestuft ist, dann Exception werfen.
- Es existieren überhaupt keine Daten derart.
Wenn die Datei nicht existiert und das als Fehler eingestuft ist, dann gibts eine Exception. Wenn das ein normaler Zustand ist, z.B. beim allerersten Aufruf nach der Installation, dann entspricht das wohl eher Fall 2.
Alles drei sind doch quasi oder wie auch immer gennannt User-Messages bzw. würden in dem Fall in einer User-View angezeigt werden.
Ob eine Anzeige erfolgen soll oder nicht, sollte keine Entscheidung der Fehler feststellenden Komponente sein. Die weiß ja nicht, in welcher Umgebung sie läuft, und wie darin die Fehlermeldung präsentiert werden soll, oder auch nicht. Sie signalisiert nur, dass etwas passiert ist.
Eine "Exception" aber würde ja in der lesenden (Model) - Klasse dann die Control außen vor lassen. Die aber wiederum würde doch nach o.g. Überlegungen eben lediglich eine Fallunterscheidung (content 1, 2, 3) vornehmen und das an die View weitergeben. So hätte ich jetzt gedacht.
Ja, Exceptions sind eine Art Fallunterscheidung, aber sie unterscheiden nicht zwischen zwei gewollten Zuständen sondern zwischen gewollten Zuständen und Ausnahmen.
Dass überhaupt ein Fehler oder eine gravierende Ausnahme entstünde könnte ich in dem Fall ja abfangen, indem die lesende Klasse testet, ob ein File diese Namens überhaupt vorhanden ist (is_file()).
Es kommt immer darauf an, wie du bestimmte Zustände definierst. Ist es eine Ausnahme oder ist es normales Verhalten? Der Sinn von Exceptions ist es, Ausnahmebehandlung aus dem normalen Programmfluss fernzuhalten, damit sich dieser auf das Wesentliche konzentrieren kann und der Lesefluss nicht ständig durch Fehlerbehandlung unterbrochen wird.
echo "$verabschiedung $name";