fanelf.de: vlibTemplate vs. smarty

Beitrag lesen

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.