frankx: Templateengine PHP MVC

Beitrag lesen

Hellihello dedlfixy,

echo $begrüßung;

Mit denen [HTML_Template_IT, HTML_Template_Sigma] hatte ich auch mal angefangen, bevor ich mich vom Gedanken, PHP und HTML ungeachtet der logischen Verarbeitungsschritte strikt trennen zu wollen, verabschiedet hatte.
Das würde mich jetzt interessieren, was das genau bedeutet, weil es ja sein könnte, dass ich dann den selben Prozess auch durchmache.

Du bist noch nicht beim MVC angekommen. Die View kümmert sich um sämtliche Ausgabelogik-Dinge. Du betrachtest, so scheint es mir, nur ein Template. Die Entscheidungen, was ausgegeben werden muss, und die Wiederholungen bei Massendaten, willst du möglicherweise dem Controller-Teil aufhalsen.

Neinnein, der sollte eigentlich den Request bearbeiten bzw. bestenfalls direkt ans Model weiterleiten, welches dann wiederum sein Ausgabe(n) (Arrays) der View ins Stammbuch schreibt.

<html>

<head><title>Beispiel</title></head>
<body>
  <div>Navigation usw.</div>

<?php if ($errors): ?>

<div>Es sind Fehler aufgetreten:
    <ul class="errors">
      <?php foreach ($errors as $error): ?>
        <li><?php echo htmlspecialchars($error) ?></li>
      <?php endforeach; ?>
    </ul>
  </div>

<?php else: ?>

<?php if ($data): ?>

<table>
      <tr>
        <th>Überschrift</th>
        <th>Überschrift</th>
      </tr>
      <?php foreach ($data as $record): ?>
        <tr>
          <td><?php echo htmlspecialchars($record[0]) ?></td>
          <td><?php echo htmlspecialchars($record[1]) ?></td>
        </tr>
      <?php endforeach; ?>
    </table>

<?php else: ?>

<div>Die Anfrage brachte kein Ergebnis.</div>

<?php endif; ?>

<?php endif; ?>
</body>
</html>

  
Jup, das ist das, was mir irgendwie noch fehlte, auch wenn Du schon darauf verlinkt hattest. Nicht HTML-Code von PHP echoen lassen, sondern PHP im HTML wohlgeformt eingeben. diese "end(foreach|if)" sehen auch deutlich besser aus als einsame "}" zum beenden einer Schleife/Bedingung.  
  

> > Ich möchte beispielsweise - in einer aktuellen Test-/Entwicklungsphase -, dass die aufgerufene Methode einer Klasse nicht nur ein Ergebnis mit Datensätzen zurückgibt, sondern noch den Klassennamen, Methodennamen und einen individuellen Kommentar.  
>   
> Das würde ich nicht wollen. Das bedeutet, dass der Ausgabeteil noch deutlich mehr vom Rest wissen muss als nur die auszugebenden Daten und ihre Struktur. Namen von Bezeichnern des Programms sind für mich allenfalls für das Debugging interessant.  
  
Ja, ich würde das in dem Fall präventives Debugging nennen. Das kommt dann später wech.  
  

> > > Es gliedert sich wohl grob gesehen in zwei Gruppen. Die eine macht es XML/SGML/HTML-ähnlich, mit dem Vorteil eventuelle Editoren und deren Syntax-Unterstützung nutzen zu können, die andere kocht ein eigenes Süppchen.  
> > Mit eigenem Süppchen meinst Du zB die HTML\_Template\_IT mit den curly braces? Wo aber findet sich HTML-ähnliches (zB. bei PEAR oder ZEND?)? Oder sind dass dann Template-Engines für andere Sprachen?  
>   
> Alles was nicht nach HTML/XML aussieht, zähle ich mal in die Eigenes-Süppchen-Gruppe. Zeichen, die in HTML/XML keine Bedeutung haben, wie {} und [] oder $ oder # als Unklammerung oder Einleiter von besonders zu bearbeitenden Dingen. Zu den HTML/XML-ähnlichen, die eigene Elemente verwenden oder Attribute in die Elemente einfügen, zählt beispielsweise [PHPTAL](http://phptal.motion-twin.com/).  
  
Merci. Das ist ja (s. deren eigene Intro) sozusagen die Alternative zu o.g. Beipiel. Ich glaub mal spontan, o.g. reicht erstmal für meine Zwecke (;-), bzw. mein Bedürfnis nach einer Art Stringenz/Ordnung im Code.  
  
  
Dank und Gruß,  
  
[frankx](http://community.de.selfhtml.org/visitenkarten/view.php?key=82)

-- 
[tryin to](http://sauer-ernst.de) [multitain](http://multitain.de)  - Globus = Planet != Welt