Das hast DU aber geschrieben:
Ja, was geben Deine Klassen denn wirklich zurück ;)Ungeschickt ausgedrückt, das gebe ich zu. Aber müßig das weiter auszudiskutieren wenn du sonst nichts zum Thema zu sagen hast.
Zu meinem Hinweis, Stichwort 'Template': Mach nicht den Fehler, den andere in ihren Frameworks machen, dass im Template selbst Methoden derjenigen Klasse gebraucht werden, welche das Template einbindet. Das ist in PHP-Kreisen zwar verlockend, weil PHP selbst eine Templatesprache ist, aber in diesem Fall verbaust Du Dir von vornherein die Möglichkeit der Austauschbarkeit einer Template-Engine und beim Austausch von Templates ergeben sich unangenehme Abhängigkeiten.
Also weder __toString() noch getHTML(). Nimm für den Ausgabe-Puffer eine Eigenschaft der übergeordneten Klasse und überlege Dir eine zweckmäßige Datenstruktur für diesen Puffer, der unabhängig von der Tempateengine i.d.R. eine Referenz auf ein Array ist (Twig, Smarty).
Und jetzt versuche den Sinn eines return zu verstehen: Wenn die Klasse mit include/require eingebunden wird, kann sie genau an dieser Stelle ein Template zurückgeben, was manchmal sinnvoll ist. Danach erfolgt die Instanziierung, ggf. gefolgt vom Aufruf einiger Methoden und erst zum Schluss wird das Template gerendert.
Schönen Abend,
Hotti