echo $begrüßung;
Komme mit den Begriffen Datenobjekt nicht ganz klar.
Ich dachte mir schon dass der Begriff missverständlich ist. Er ist eher allgemein zu verstehen und nicht so sehr als Objekt im OOP-Sinne. Du hast doch bestimmte Anforderungen an deine Datenhaltung. Du willst beispielsweise einmal Daten zu einer Person haben. Ein anderes Mal brauchst du ein Produkt. Und dann willst du vielleicht auch noch den Inhalt des Warenkorbs zusammen mit einigen Produkstammdaten wie Name und Preis haben.
Für die ersten beiden Datenobjekte reicht eine einfache Abfrage gegen jeweils eine Tabelle (= Schema F). Für das letzte Beispiel brauchst du einen Join aus zwei Tabellen. Hier muss die SQL-Query anders zusammengebaut werden, weswegen du die allgemeingültige hole_mir_daten_aus_einer_tabelle() nicht so verwenden kannst. Zumindest der Teil, der das Statement zusammenbaut muss überschrieben werden.
Wenn Du von abgeleiteten Klassen für jede Art von Datenobjekt sprichst, meinst Du, dass ich eine Basisklasse habe mit dem Schema F hole(), und für alles was nicht diesem Schema F entspricht eine abgeleitete Klasse?
Ich stelle mir das Ganze eher komplexer vor. Die Basisklasse kann grundsätzlich CRUD-Anfragen abfeuern und das Ergebnis abholen. Vielleicht kann sie auch beim Zusammenbau der SQL-Statements helfen. Aber sie weiß keine konkreten Namen von Tabellen oder Feldern. Diese Informationen kennen erst die davon abgeleiteten spezialisierten Klassen. Davon gibt es eine für Personen, eine für Produkte und eine für den Warenkorb. Für inhalt_mit_produktdaten() müsste die Warenkorbklasse der geerbten für den R-Teil zuständigen Methode noch beibringen, dass gejoint werden muss.
Dabei kommt man eigentlich in einen Konflikt. Für Produktdaten ist ja die Produkte-Klasse zuständig. Den Tabellen- und die Feldnamen auch in der Warenkorbklasse zu notieren heißt, diese Daten an zwei Stellen zu haben. Das ist bei einer Änderung eines Feldnamens unschön, aber in meinen Augen das kleinere Übel im Gegensatz zu den recht aufwendigen Versuchen vorhandener Implementierungen [1], dieses Problem sauber zu lösen.
[1] PEARs DB_DataObject sei mal als ein Beispiel genannt.
Sorry, aber ich komme einfach bei der konkreten Überlegung durcheinander, wie ich das wirklcih anstellen soll.
Du kannst dir ja anschauen, wie andere das Problem lösen. Es gibt diverse PHP-Frameworks, die alle das Thema Daten-Ablage angegangen sind.
echo "$verabschiedung $name";