Smarty Template Engine

wapplegraph

Normande
Registriert
12.04.06
Beiträge
571
Hallo

Kennt sich jemand mit Smarty aus, ist es gut, ist es populär, d.h. braucht das irgend ein "Grosser"?

Ich möchte ein System haben, welches mir einfach das Design und die Programmierarbeit auseinander hält.
Mein Problem jedoch ist, dass ich die ganze Logik hinter dem Template-System noch nicht ganz sehe. Mein Kollege hat eine Seite mit 3 Templates aufgebaut: header, inhalt, footer. Im Header ist jedoch der Dokument-Header und der Layout-Header - das ist doch sicher nicht der Sinn von der Sache!
Könnte mir jemand sagen, wie in aller Einfachheit eine richtige Seite aufgebaut ist?

Entschuldige, wenn ich wirres Zeug schreibe, es ist schon spät, doch der Gedankenblitz ist mir noch nicht gekommen.

Merci wapplegraph
 

AgentSmith

Hochzeitsapfel
Registriert
15.07.07
Beiträge
9.304
Könnte mir jemand sagen, wie in aller Einfachheit eine richtige Seite aufgebaut ist?

Da liegt wohl der Hund begraben.. ein richtig gutes Layoutsystem für eine halbwegs aufwendige Seite ist auch oder mit einem derart mächtigem Werkzeug wie Smarty keine triviale Angelegenheit. Smarty ist sehr populär, aber auch irrsinnig komplex - seine schier endlose Funktionalität macht es nicht gerade einfacher, wirklich konsequent Inhalt von Design von Programmcode zu trennen.
Wie die Einteilung deines Kollegen zu beurteilen ist, lässt sich im Grunde auch nur nach Kenntnis der Seite wirklich sagen. Prinzipiell bleibt es einem natürlich selbst überlassen, inwieweit man die Templates der Ordnung willen aufsplittet, also muss es nicht zwingend verkehrt sein, die beiden Header in einem Template unterzubringen.
 

drok

Klarapfel
Registriert
02.06.07
Beiträge
278
Lad' Dir Smarty mal runter und schau Dir die Demo an.

Du hast die index.php, dort übergibst du Smarty deine Werte und lässt das index-Template ausgeben.
Code:
$smarty->assign("Name","Fred Irving Johnathan Bradley Peppergill"); 

$smarty->display('index.tpl');
In der index.tpl, lädst Du dann den Header und den Footer. (Und gibst natürlich die Daten aus.)
Code:
{include file="header.tpl" title=foo}
Dein Name: {$Name}
{include file="footer.tpl"}
Im Header steht dann der HTML-Kopf und im Footer die End-Tags.
 

Bananenbieger

Golden Noble
Registriert
14.08.05
Beiträge
25.515
Also ich sehe den Sinn hinter Smarty nicht.

PHP an sich ist doch schon eine Template-Engine, nur wenn man verhindern möchte, dass ein HTML-Designer Programmcode außer Schleifen in ein Template einbauen kann, dann kann man Smarty verwenden.

Aber eigentlich gibt es dafür eine bessere Lösung: XML mit XSLT.
 

duderino

Prinzenapfel
Registriert
26.01.06
Beiträge
555
Also ich sehe den Sinn hinter Smarty nicht.

PHP an sich ist doch schon eine Template-Engine, nur wenn man verhindern möchte, dass ein HTML-Designer Programmcode außer Schleifen in ein Template einbauen kann, dann kann man Smarty verwenden.

Aber eigentlich gibt es dafür eine bessere Lösung: XML mit XSLT.

Selbst das ist mit SMARTY möglich ({php}{/php}). Ich weiß, Smarty ist ziemlich überladen an Funktionen. Allerdings sind die Basisfunktionen ziemlich einfach zu benutzen und was ich z.B. auch immer sehr komfortabel finde, ist die Cache-Funktion.
 

Bananenbieger

Golden Noble
Registriert
14.08.05
Beiträge
25.515
Selbst das ist mit SMARTY möglich ({php}{/php}).
Aber genau das will ich ja mit einer Template-Engine verhindern. Von daher ist für mich Smarty auch sinnfrei, vor allem, da Smarty die Templates wieder in PHP-Code "rendert" und cached.

Da kann ich auch sofort PHP nehmen und habe keinen Overhead.
 

drok

Klarapfel
Registriert
02.06.07
Beiträge
278
Naja, der Sinn ist ja, dass man den Code von Design trennt.
Also dass mit PHP Werte an Smarty übergeben werden, und Smarty dann den Rest übernimmt.
Darstellung auf der Seite, oder weitere Verarbeitung der Daten.. z.B. bietet Smarty noch Formatierungsfunktionen etc..

edit: Wenn jetzt der Designer wieder anfängt über Smarty PHP-Code einzufügen, dann ist das natürlich sinnfrei, aber es gibt sicher Stellen bei denen sowas auch mal notwendig ist.
 

Bananenbieger

Golden Noble
Registriert
14.08.05
Beiträge
25.515
Dann kann man aber besser statt Smarty ein richtiges PHP-RAD-Framework wie Cake oder Symfony verwenden. Und es gibt ehrlich gesagt nichts, was Smarty besser kann als PHP.

Man muss sogar neben PHP sich die andere Syntax von Smarty merken...
 

drok

Klarapfel
Registriert
02.06.07
Beiträge
278
Naja, dass ist auch eine Frage des Einsatzgebietes.
Für eine kleinere dynamische Homepage reicht es ja, wenn ich die Ausgabe mit Smarty umsetze und überflüssige Funktionen/Berechtigungen sperre.(Ja in Smarty kann man auch Sicherheitseinstellungen vornehmen)
Also nur die Grundfunktionen von Smarty benutze.

Wenn ich jetzt etwas komplexeres aufbauen will, z.B. eine Webanwendung mit viel Interaktion zwischen Nutzer und Server, währe es wohl günstiger ich nehm mir gleich ein (MVC)Framework und lass es die Arbeit erledigen.
 

wapplegraph

Normande
Registriert
12.04.06
Beiträge
571
Hallo

Merci für schon eure zahlreichen Antworten. Wie es mir scheint, ist Smarty wirklich noch zu gebrauchen. Also kann ich mit dem einmal Arbeiten und später ein so "richtiges" Framework nehmen, oder ist der Umstieg wie ein Neuanfang?
Mit Smarty schreibe ich aber schon noch selbst PHP-Code?

wapplegraph
 

drok

Klarapfel
Registriert
02.06.07
Beiträge
278
Smarty ist was komplett anderes, lad Dir einfach mal Smarty runter und sieh Dir die Demo an. Da siehst du dann schonmal wie es funktioniert.
 

Bananenbieger

Golden Noble
Registriert
14.08.05
Beiträge
25.515
Meine Meinung ist ja, dass man sofort ein Framework nutzen sollte, da dort die meisten Funktionen, die man so braucht, bereits implementiert sind. Es gibt ja auch Lightweight Frameworks wie CodeIgniter, wenn man nur kleine Projekte machen möchte. Aber eigentlich sind Symfony und CakePHP die erste Wahl. Letzteres kann man auch leicht lernen und hat nette HTML-Helper.

Wie gesagt: Ich bin aber ein Gegner von PHP-Templating-Engines, da man als Developer Templates vorher sichten sollte, bevor sie implementiert werden. Schließlich bauen Designer auch öfters mal falschen View-Code ein...
 

wapplegraph

Normande
Registriert
12.04.06
Beiträge
571
Mhm ich habe mir jetzt einmal Smarty heruntergeladen und hier sieht man die Demo.
Ich finde der Quelltext von index.tpl sieht richtig unschön aus und ist ja auch ein Gemisch von HTMl und "Smarty", wohl das ist ja ein Template.
Ich weiss auch nicht, ich kann mich mit der ganzen Sache noch nicht richtig anfreunden, doch ich möchte ein mächtiges Werkzeug zu Hand haben. Mit einem einfachen CMS-System konnte ich mich auch noch nie anfreunden.
 

drok

Klarapfel
Registriert
02.06.07
Beiträge
278
Ich finde nicht das es besonders "unschön" aussieht. Natürlich ist es ein Gemisch aus HTML und Smarty-Code, ist eben eine Template-Engine.

Ich würde vorschlagen du gehst die Doku durch und schreibst einfach mal eine kleine dynamische Homepage.
Es reicht nicht sich den Code 2 Minuten anzuschauen und dadurch das gesamte Tool zu beurteilen.

Du wirst nie ein "Mächtiges Werkzeug" benutzen können, wenn Du dich nicht damit befasst und dich einarbeitest. Und je komplexer und mächtiger etwas ist, desto länger braucht man in der Regel auch um sich einzuarbeiten.

Du solltest Dir auch überlegen wozu Du es überhaupt benutzen willst.
 

wapplegraph

Normande
Registriert
12.04.06
Beiträge
571
Es reicht nicht sich den Code 2 Minuten anzuschauen und dadurch das gesamte Tool zu beurteilen.

Du wirst nie ein "Mächtiges Werkzeug" benutzen können, wenn Du dich nicht damit befasst und dich einarbeitest. Und je komplexer und mächtiger etwas ist, desto länger braucht man in der Regel auch um sich einzuarbeiten.

Mhm ja stimmt! Ich werde mir als nächstes einmal Zeit nehmen und mit Smarty eine kleine Site aufbauen.

Du solltest Dir auch überlegen wozu Du es überhaupt benutzen willst.

Ja, also ich arbeite mit einem Kollegen zusammen und wir erstellen Homepages. Smarty oder was auch immer sollte uns helfen gut nebeneinander zu arbeiten und nicht jedes Mal alles neu zu schreiben oder hin- und herkopieren. Ich habe mir schon so kleinere Funktionen erstellt, welche allgemein gültig sind. Doch nun sollte ein Werkzeug her, welches solche Sachen einfach und logisch "verwaltet".
Ich möchte auch immer mehr in die grosse, moderne Welt vom Webdesign hineinwachsen und die vorhandenen Möglichkeiten ausschöpfen, also verwenden können.
 

drok

Klarapfel
Registriert
02.06.07
Beiträge
278
Für sowas sollte Smarty schon das richtige sein. Also einfach mal einarbeiten ;)
 

kauan

Stina Lohmann
Registriert
31.12.05
Beiträge
1.043
Ausprobieren, und allenfalls merken, dass es das für deine Zwecke falsche ist. Diese Erfahrung nimmt dir niemand ab.