1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Unsere jährliche Weihnachts-Banner-Aktion hat begonnen! Wir freuen uns auf viele, viele kreative Vorschläge.
    Mehr dazu könnt Ihr hier nachlesen: Weihnachtsbanner 2016

    Information ausblenden

Smarty Template Engine

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von wapplegraph, 22.07.08.

  1. wapplegraph

    wapplegraph Normande

    Dabei seit:
    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
     
  2. AgentSmith

    AgentSmith Hochzeitsapfel

    Dabei seit:
    15.07.07
    Beiträge:
    9.361
    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.
     
  3. drok

    drok Klarapfel

    Dabei seit:
    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.
     
  4. duderino

    duderino Goldparmäne

    Dabei seit:
    26.01.06
    Beiträge:
    556
    Smarty ist wirklich zu empfehlen. Hab bisher nur gute Erfahrungen mit Smarty gemacht. Es gibt teilweise auch viele gute Plugins die einem ne Menge Programmierarbeit abnehmen:

    http://smarty.incutio.com/?page=SmartyPlugins


    Gruß, duderino
     
  5. Bananenbieger

    Bananenbieger Golden Noble

    Dabei seit:
    14.08.05
    Beiträge:
    24.564
    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.
     
  6. duderino

    duderino Goldparmäne

    Dabei seit:
    26.01.06
    Beiträge:
    556
    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.
     
  7. Bananenbieger

    Bananenbieger Golden Noble

    Dabei seit:
    14.08.05
    Beiträge:
    24.564
    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.
     
  8. drok

    drok Klarapfel

    Dabei seit:
    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.
     
  9. Bananenbieger

    Bananenbieger Golden Noble

    Dabei seit:
    14.08.05
    Beiträge:
    24.564
    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...
     
  10. drok

    drok Klarapfel

    Dabei seit:
    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.
     
  11. wapplegraph

    wapplegraph Normande

    Dabei seit:
    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
     
  12. drok

    drok Klarapfel

    Dabei seit:
    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.
     
  13. Bananenbieger

    Bananenbieger Golden Noble

    Dabei seit:
    14.08.05
    Beiträge:
    24.564
    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...
     
  14. wapplegraph

    wapplegraph Normande

    Dabei seit:
    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.
     
  15. drok

    drok Klarapfel

    Dabei seit:
    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.
     
  16. wapplegraph

    wapplegraph Normande

    Dabei seit:
    12.04.06
    Beiträge:
    571
    Mhm ja stimmt! Ich werde mir als nächstes einmal Zeit nehmen und mit Smarty eine kleine Site aufbauen.

    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.
     
  17. drok

    drok Klarapfel

    Dabei seit:
    02.06.07
    Beiträge:
    278
    Für sowas sollte Smarty schon das richtige sein. Also einfach mal einarbeiten ;)
     
  18. kauan

    kauan Stina Lohmann

    Dabei seit:
    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.
     

Diese Seite empfehlen