[PHP] Template Engine auf DOM/XML-Basis

Dieses Thema im Forum "Webentwicklung" wurde erstellt von theQuest, 5. April 2013 .

Schlagworte:
  1. 5. April 2013
    Template Engine auf DOM/XML-Basis

    Servus,

    ich bin dabei eine Website bzw. ein Framework aufzupolieren. Dabei bin ich über die Template Engine gestolpert, die nach dem alten Platzhalter-Prinzip funktioniert. Zusätzlich sind da wieder gewisse logische Operationen im Template möglich, die da eigentlich nach dem MVC-Prinzip nicht sein sollten.

    Nun hatte ich etwas Engines auf Basis von DOM gelesen. Dabei wird das Template eingelesen und als XML verarbeitet. Gibt auch zwei Klassen die ich bisher finden konnte: code · Making the Ugly Elegant: Templating With DOM und DomTemplate::

    Was ich mich nun frage ist, ob es nicht auch eine fertige Lösung gibt, die einerseits via DOM arbeitet, andererseits die Möglichkeit von Platzhalter bietet. Ich will nur ungern eine eigene Klasse basteln (auch wenn ich gegenwärtig schon dabei bin). Kennt da jemand eine?

    Letzte Frage: Wie steht ihr generell zu diesem Modell? Mehr von der Logik befreien kann man Templates kaum.
     
  2. 5. April 2013
    AW: Template Engine auf DOM/XML-Basis

    hi,

    als template engine nutz ich smarty.
    ich find es klasse damit zu arbeiten.
     
  3. 5. April 2013
    AW: Template Engine auf DOM/XML-Basis

    Aber genau um solche Scripte geht es eben nicht
     
  4. 5. April 2013
    AW: Template Engine auf DOM/XML-Basis

    Ich würde dir einen Umstieg zu Java nahe legen, denn eine DOM Template-Engine wiederspricht ja mal zu 100% dem Grundgedanken von PHP.

    PHP selbst ist bereits eine Template-Engine.

    Smarty z.b. ist schon übertrieben, aber vertretbar als "Precompiler" (Smarty erzeugt PHP-Code) und caching. Nun aber diesen Schritt zu überspringen bzw. Serverseitig schon mit DOM zu arbeiten halte ich für unsinnig und für zu performancelastig.

    Wenn du keine Kontrollstrukturen im View haben willst, dann benutze diese nicht?
    Wenn du Platzhalter nutzen willst: <?=$platzhalter?>
     
    1 Person gefällt das.
  5. 6. April 2013
    AW: Template Engine auf DOM/XML-Basis

    Hallo,

    leider ist die Akzeptanz von Java im Web, zumindest bei den Leuten denen ich das anbieten würde, gleich null. Da herrscht der veraltete Gedanke vor, dass Java eine instabile, unsichere und unausgereifte Sprache ist. Auch wenn es nicht (mehr) stimmt, kann ich mich nicht mit der ganzen Aufklärarbeit beschäftigen.

    Zum Thema Serverlast: Es wäre ja nur das compilieren des Templates. On the Fly will ich da natürlich nichts nutzen. Also ein anständiges Caching ist unabdingbar.

    Murdoc, würdest du noch etwas ausführen, warum es dem 100% widerspricht?
     
  6. 6. April 2013
    AW: Template Engine auf DOM/XML-Basis

    Du nimmst PHP das eingebaute Sprachfeature weg, das alleine ist Grund genug nochmal genauer drüber nachzudenken.

    Zudem hast du weiterhin Kontrollstrukturen in deinem View-Code, nur eben nicht mehr im Template selbst, sondern nun im Controller/Model - im schlimmsten Fall um Änderungen im (langsamen) DOM des Templates vorzunehmen. Sprich: Du machst deine Models vom Template abhängig - und eben genau anders rum sollte es sein.

    Am Ende hast du deinen View-Code nur ein weiteres mal abstrahiert, ein wirklicher Mehrwert des Ganzen bleibt mmn. fraglich.
     
  7. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.