In kleineren Beispielen besteht das "Hauptprogramm" ausserhalb der Klassen immer nur aus ein paar Zeilen, in etwa:
$x = new klasse();
print $x->dies();
print $x->das();Kann das Hauptprogramm denn auch so aussehen, oder ist das dann nicht mehr so elegant (und wenn nicht, wie geht's anders):
$x = new klasse();
if (irgendwas)
{
$x->mache_das();
}
else
{
$x->mache_jenes();
}
warum nicht ? du rufst verschiedene methoden in abhängigkeit auf.
(laß dich nicht verwirren, aber solche konstrukte sollen durch oop auch vermieden werden. ist am anfang nicht so wichtig. bei genügend übung wirst du das später selbst herausfinden. allerdings ist das in php noch nicht sprachlich implementiert, und muß 'von hand' in den klassen berücksichtigt werden. stichwort signaturen.)
Und noch was: Wie mache ich es am besten mit globalen Einstellungen, die für das ganze Skript gelten sollen. Normalerweise würde ich das so machen:
$einstellung = [Wert];
function irgendwas()
{
global $einstellung;
...
}
nicht gegen 'globale' information. manchmal sehr hilfreich und geschickt. schränkt aber den gedanken der unabhängigen wiederverwendung ein.
wenn deine klassen eh nur für ein bestimmtes projekt gelten, kein problem. wenn du aber universelle klassen möchtest, mußt du die sichtbarkeit auf die reine kapselung legen. also jeden informationsaustausch außerhalb von methodenaufrufen oder öffentlichen attributsänderungen verhindern.
aber es scheint mir, als ob du für dein gästebuch 'Darstellungsklassen' erstellst. das ist auch eine feine sache.
aber in erster linie solltest du klassen für die logik erstellen.
denk doch mal an eine klasse 'eintrag', welche alle dinge für einen eintrag behandelt (prüfungen, speicherung ..)