daniel, du hast völlig recht. ich verzichte auch auf dieses template-gedöns. denn letztlich macht das nichts anderes als html zu generieren. und zwar mit den daten, welche ich vorher in das template-gedöns eingestellt habe.
dies ist keine trennung von logik und präsentation.
eine wirkliche schichtentrennung hat eine html-datei in welcher sich (fast) nur html-tags befinden und eine php-datei mit den entsprechenden use-cases. so ist aus der html-datei die präsentation schnell zu erkennnen (auch für web-designer). in der php-datei befinden sich keinerlei html-tags, sondern nur die klassen der logik. damit kommt ein programmierer bestens klar.
allerdings wäre dein progausschnitt damit verbesserungsfähig.
statt:
<?php
while($row = mysql_fetch_assoc) {
?>
<tr>
<td><?php echo $row['entry'] ?></td>
<tr>
<?php
}
?>
sähe mein entsprechender teil in der html-datei so aus:
<!-- foreach Objekte -->
<?php foreach (gibObjektListe('was?') as $Objekt) : ?>
<tr>
<td><?php zeigeWert(&$Objekt); ?></td>
</tr>
<?php endforeach; ?>
<!-- endforeach Objekte -->
die php-datei enthält die klassen der logik als auch die funktionen gibObjektListe und zeigeWert:
<?php
gibObjektListe($was) {
global $Bean;
return $Bean->gibObjektListe(&$was);
}
zeigeWert($Objekt) {
//Objektprüfung weggelassen
$Objekt->zeigeWert();
}
$Bean = &new LogikBean('Anwendung');
?>
in der klasse Bean befinden sich die Use-Cases.