PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PHP Template Engines



netwalker
04-04-2006, 14:46
Guten Tag,
da ich in der PHP Welt nicht so befestigt bin wie ihr wahrscheinlich, habe ich eine frage an euch bezüglich PHP Template Engines.

Vorab: Ich muss eine Abschlussarbeit in PHP schreiben. Habe zwei Wochen getippen, alles schön OOP, weil ich von Java das so herkenne. Jetzt habe ich etwas mich erkundigt und mir paar Template Engines angeschaut.
Die frage ist, soll ich mich auf ein Template System umsteigern und vieles neuschreiben oder ist das viel ein Mittelgroßes System unintressant?

Währe euch sehr dankbar, wenn Ihr mir ein paar Tipps geben könntet ??
Danke im Vorraus!
netwalker

Romanday
04-04-2006, 15:43
Die frage ist, soll ich mich auf ein Template System umsteigern und vieles neuschreiben oder ist das viel ein Mittelgroßes System unintressant?

Währe euch sehr dankbar, wenn Ihr mir ein paar Tipps geben könntet ??
Danke im Vorraus!
netwalker

Ich persönlich finde Template Engines nicht so prickelnd.
Problem, man muß sich trotzdem mit dem Krams auskennen,
da viele Anwendungen darauf basieren.

Ich würde dir raten, dich 1 Wochende mit smarty zu beschäftigen,
und danach mal selber eine kleine benutzerdefinierte Template
Engine zu entwickeln.

(Dann hast Du ein gutes Fundament, um weitere Ideen umzusetzen.)

Turbohummel
05-04-2006, 05:56
Im Prinzip ist es völlig egal, welche Engine du einsetzt. Es sollte halt nicht Smarty sein - das is zu langsam und viel zu überladen.

FastTemplate kann ich dir empfehlen.

undefined
05-04-2006, 10:51
Also wenn du PHP 5 im einsatzt hast dann empfehle ich auf jeden Fall XSLT.
Es ist schnell und du must keinerlei HTML in PHP verwenden.

sagi
06-04-2006, 02:25
Ich finde Template Engines schon wichtig. Sieh dich mal hier um:

http://pear.php.net/packages.php?catpid=10&catname=HTML&pageID=2

Flexy kann ich empfehlen, aber das ist Geschmacksache...

mfg

inge
08-04-2006, 20:19
also ich verwende schon einige zeit smarty und bin sehr zufrieden, habe allerdings auch keine groß belasstete website, für die schnelligkeit wichtig wäre...
wenn du also keine extremen besuchzahlen hast ist smarty sehr bequem ;)

pitgrap
08-04-2006, 20:29
also ich bin auch mehr als begeistert von smarty. ich entwickele projekte nur noch basierend auf smarty. und wenn man mehr performanz benötigt, kann man auch gut den cache-mode aktivieren. gerade bei seiten, wo sich eh selten was ändert.

Turbohummel
09-04-2006, 12:08
Für Webservices also denkbar schlecht geeignet ;)
Für CMS is der Cache dagegen natürlich sehr nützlich.

elrond
10-04-2006, 14:42
die frage nach dem besten templatesystem ist wie die nach dem besten bier... du wirst von 20 leuten 20 meinungen bekommen.

Ich selbst hab mal irgendwann eine version von fasttemplate angepasst und bin sehr zufrieden damit, auch in komplexen anwendungen. allerdings entwickle ich zumeist für's intranet, so dass die zugriffszahlen sich in grenzen halten.

ClausVB
18-04-2006, 15:34
Die frage ist, soll ich mich auf ein Template System umsteigern und vieles neuschreiben oder ist das viel ein Mittelgroßes System unintressant?
Ich benutze auch für ganz kleine Applikationen (kleiner 20 Zeilen) eine Template Engine (http://de.wikipedia.org/wiki/Template_Engine) und zwar vLIB (http://lamp.clausvb.de/index/menuid/138/) mit vlibTemplate (http://lamp.clausvb.de/index/menuid/140/), vlibDate (http://lamp.clausvb.de/index/menuid/141/) und vlibMimeMail (http://lamp.clausvb.de/index/menuid/142/), weil ich faul bin und für alle wichtigen Funktionen (Datenbank-Ausgaben, Verschicken von Mails, Darstellung eines Datums, Geburtstage, etc.) nicht kümmern muss.

vLIB hat den Nachteil, dass die Klasse nicht (oder nur sehr selten) weiterentwickelt wird, aber es hat alle Funktionen, die ich brauche.

Geschwindigkeit ist bei Templates so eine Sache, sie variiert stark von OS zu OS und von Server zu Server.
Benchmarks auf template-benchmark.de (http://www.template-benchmark.de/de/benchmark-of-template-engines/simple-var-replacement/)
Benchmark #1 von pukomuko (gehostet von vlib.clausvb.de) (http://vlib.clausvb.de/benchmarks/tpl_bench_1.php)
Benchmark #2 von pukomuko (gehostet von vlib.clausvb.de) (http://vlib.clausvb.de/benchmarks/tpl_bench_2.php)

Ich wähle mittlerweile die Software aus, die mit einer (sehr) guten Dokumentation ausgeliefert wird und die alles hat, was ich brauche. Smarty unterstützt zum Beispiel keine Ausgaben aus der Datenbank, vLIB und TinyButStrong (http://www.tinybutstrong.com/) unterstützen verschiedene RDBMS. Andererseits sagen die Profis (zurecht): "AdoDB oder ein anderes RDBMS-Abstraktionlayer verwenden!"

kleines Beispiel zu vlibTemplate (http://lamp.clausvb.de/vlib_mhtml/kap02_tmplvariablen.html)
kleines Beispiel zu Smarty (http://lamp.clausvb.de/smarty_mhtml/kap02_tmplvariablen.html)
kleines Beispiel zu TinyButStrong (TBS) (http://lamp.clausvb.de/tbs_mhtml/kap02_tmplvariablen.html)

Meine 2 Cent.

Gruß
Claus

ClausVB
18-04-2006, 16:04
Du kannst übrigens auch sehr schnell "Templates bauen" ohne eine Template Engine zu verwenden:


<h1><?=$body_text?></h1>

<? foreach($test_array as $key => $value): ?>
<p>Schlüssel: <?=$key?> -- Wert: <?=$value?></p>
<? endforeach; ?>

Im PHP-Skript werden dann die Variablen "$body_text" und der Array "$test_array" generiert.
Vorteil: keine Installation bzw. Template Engine notwendig
Nachteil: Man kann die Templates nur unter erschwerten Bedingungen mit Dreamweaver, Frontpage oder GoLive erstellen. Templatevariablen von Smarty oder vlibTemplate sind dort (und in den Browsern) nämlich sichtbar.

Gruß
Claus

Turbohummel
18-04-2006, 16:34
Nach meiner Ansicht sollten Templatesysteme immer noch das Design von der Programmierung trennen.
Schleifen sind definitiv Programmierung, und sollten dementsprechend auch in dieser ausgeführt werden, und nicht auf der Templateebene.
Ideal ist natürlich eine eigene Darstellungsebene, die Arrays usw. für die Ansicht aufbereitet.

ClausVB
19-04-2006, 07:34
Nach meiner Ansicht sollten Templatesysteme immer noch das Design von der Programmierung trennen.
Schleifen sind definitiv Programmierung, und sollten dementsprechend auch in dieser ausgeführt werden, und nicht auf der Templateebene. (...)
Dem stimme ich zu, aber nach dieser Definition ist Smarty keine Template Engine, denn hier kannst Du mit FOREACH, IF und SWITCH-CASE arbeiten. Wenn also Smarty als Template Engine genommen werden soll oder etwas anderes, könnte man auch direkt das Konstrukt oben verwenden, denn mit PHP hast Du alle Möglichkeiten, auch im Template.

Ich halte einiges von Smarty, aber es ist für mich eher Template-Programmierung, als reines HTML mit Platzhaltern (Templatevariablen).

Gruß
Claus