[PHP] Template Engine!?

Dieses Thema im Forum "Webentwicklung" wurde erstellt von opio12, 19. Mai 2007 .

Schlagworte:
  1. 19. Mai 2007
    Template Engine!?

    Hey,

    ab wann bzw. wo ist es sinnvoll ne template engine einzusetzen und welche engine ist eurer meinung nach am besten??

    MfG
     
  2. 19. Mai 2007
    AW: Template Engine!?

    Es ist dann sinnvoll, wenn man sein Code vom Design trennen will.
    Ab bessten wird Smarty "gehandelt".
     
  3. 19. Mai 2007
    AW: Template Engine!?

    ich selber benutze smarty, und ich muss sagen seid meiner umstellung darauf kann ich maeinen code auch wieder lesen
    also bei größeren homepages oder CMS, vorallem wenn du ein grundgerüst hast auf das du immer templates anpasst ist smarty sehr gut, da dir beim anpassen des templates keinerlei code im weg ist.
     
  4. 19. Mai 2007
    AW: Template Engine!?

    ...wie siehts eingentlich mit der prefomance von solchen template engines aus (z.b. smarty)?? Belasten die den webserver/space stark?? Und welche alternativen hat man eigentlich zu template engines, wenn man code und design trennen will??

    //EDIT: hat jemand nen kleines opensource projekt welches mit smarty arbeitet, damit ich mir das mal angucken kann??(aber bitte kein solches wo 3 varibalne ersetzt werden, hätte gern ein wo es mehrere unterschiedliche sites gibt, wo tabellen erzeugt werden etc.)

    mfg
     
  5. 19. Mai 2007
    AW: Template Engine!?

    Smarty ist sehr sparsam mit der Performence. Es kommt aber darauf an, welche Aufgaben Smarty übernimmt. Wieviele Templates geparst werden, wieviele Schleifen in Smarty sind etc.

    Aber man kann schon sagen, das Smarty überall arbeiten kann und keinen Server zum crahsen bringt.
     
  6. 19. Mai 2007
    AW: Template Engine!?

    ich habe grade kein open source projekt, aber das wbb3 arbeitet meines wissens nach mit smarty
    ich selber benutze es eigentlich immer, sobald die page über 3 php dateien hinaus geht
    die dateien von smarty werden auch nur einmal geparsed, also in php code umgewandelt
    wenn du keinen login hast kannst du auch einstellen, dass die als html gecached werden, dann werden die nur alle 6 minuten (voreinstellung) aktualisiert
    lohnt sich natürlich auch nur wenn die website in den 6 minuten oft genug aufgerufen wird
    das wichtigste zur verwendung:
    1. Smarty Instanz erzeugen:
    PHP:
    <? php
    require( 'libs/Smarty.class.php' );
    $smarty  = new  Smarty ;
    ?> 
    geht davon aus, dass smarty (samt aller internals und plugins) im unterverzeichniss libs gespeichert wurde

    2. Variabeln zur verwendung mit Smarty zuweisen:
    $smarty->assign() (Für normale Variabeln)
    $smarty->assign_by_ref() (Für Arrays, Ressourcensparender)

    2. Templates:
    {$einevariable}
    {$array[0].key}
    {if}{elseif}{else}{/if}
    {section}{/section}

    Hoffe das hilft dir irgentwie
     
  7. 19. Mai 2007
    AW: Template Engine!?

    ...schade, würd gern so n kleines projekt begutachten mit allem pipapo ! Vlt. hat noch jemand anderes was intressantes für mich:] ??

    mfg
     
  8. 19. Mai 2007
    AW: Template Engine!?

    calitrixwiki....

    http://calitrix.de/

    benutzt ganz sicher smarty
     
  9. 19. Mai 2007
    AW: Template Engine!?

    Es gibt viele Engines, einfache kann man sich auch selbst schreiben, aber ansonsten ist Smartywie gesagt die nächstliegende, nicht zueltzt weil man da einfach schneller Hilfe für findet.
     
  10. 19. Mai 2007
    AW: Template Engine!?

    ok...danke! Hab noch ne frage, ist es möglich mit smarty dynamisch div-container einzubinden?? (also hab z.b. nen home bereich wo der content aus mehreren div container besteht, geh ich jetzt aber auf nen anderen bereich der site dann brauch ich z.b. nur mehr einen dieser container, hoff ihr versteht was ich mein )

    mfg
     
  11. 19. Mai 2007
    AW: Template Engine!?

    so, hab mich jetzt mal durchs i-net gegoogelt und bin zum schluss gekommen, dass template-engines im prinzip total unnötig sind! Warum das rad neu erfinden?? Warum ne eigene "template-sprache" lernen?? Das Argument, das sich der designer leichter tut, wenn er mit template basierten sprachen arbeitet ist toal schwachsinnig, geht ja mit php genauso gut und dürfte ihn nicht weniger verwirren^^.

    Hab ganz intressante seiten zu diesem thema gefunden, könnt euch das ja mal zu gemüte führen:

    1) http://www.entwickler-blog.de/archiv/1-PHP-und-Template-Engines.html#extended
    2) http://www.entwickler-blog.de/archiv/21-Template-Engines-in-PHP-Teil-2.html#extended
    3) http://php-coding-standard.de/php_template_engine.php

    mfg

    PS: vlt. gibts jetzt ein paar von euch, die in zukunft smarty und co. gegen ein solches system ersetzen und auf die dunkle seite der macht wechseln=)
     
  12. 19. Mai 2007
    AW: Template Engine!?

    Genau, warum sollte man objektorientiert programmieren, wenn man den Code auch von oben nach unten runterschreiben kann.
    Das rad wird nicht neu erfunden, sondern bekommt einen schicken Gummireifen.

    Jedoch was hat der Designer mit dem Code zu tun, also warum sollte ein Designer php können? Jedoch finde ich, wenn man schon eine template-engine benutzt, dann sollte sich auch kein Code oder php-ähnlicher Code in den templates befinden.

    Ich hab einfach die Erfahrung gemacht, dass durch das Trennen von Code und Design alles viel übersichtlicher ist. Dieses html und php Mischmasch kann ich nicht so gut leiden.

    Jedoch ist nicht für alles eine template-engine sinnvoll. Erst bei großen Projekten erleichert es einem wirklich die Arbeit.
     
  13. 19. Mai 2007
    AW: Template Engine!?

    ...ich glaub du hast mich ned ganz verstanden, guck dir mal die seiten an dich ich gepostet hab dort wird sehrwohl auch mit oop gearbeitet !! Mir gehts um die syntax die z.b. smarty verwendet, da kann ich gleich die von php verwenden, ist nicht weniger kompliziert(bzw. unkompliziert) und ich trennen mit meiner programmierung genauso design und code!!

    mfg
     
  14. 19. Mai 2007
    AW: Template Engine!?

    irgendwie verstehe ich dein problem nicht: wenn man mit smarty mehr wie die cache-funktion + variablenersetzung braucht, dann hat man im php-, bzw. html-teil was falsch gemacht...

    das ziel einer template-engine ist es eben php und html zu trennen. die sachen, die du gezeigt hast sind in dieser hinsicht komplett unnütz. besonders die 2. (ohne klassen).
    das hat folgende gründe:
    1) php in html... das will man doch gerade verhindern!
    2) syntax, die kein mensch versteht, nicht übersichtlich ist und auch nicht auf jedem server läuft. (dann kommen hier wieder threads wie: "Skript läuft auf neuem Server nicht mehr? wieso?")

    oop-lösung:
    wenn das ganze projekt oo ist, dann kann man das machen; kein problem. jedoch nur um mal was kleineres normales zu machen, was nicht oo ist....

    zu smarty: ist sicherlich im großen und ganzen gut, wie ich finde jedoch hoffnungslos überdimensioniert (hat immerhin selbst ca. 15.000 programmzeilen!!!) für kleine bis mittlere projekte. wobei man für größere eigentlich dann oop machen sollte -> somit die klassen-lösung wieder besser ist.
     
  15. 19. Mai 2007
    AW: Template Engine!?

    also zu alternative is gerade was in der neuen c't (11)
    ich hab mir mal die mühe gemacht:

    smarty (smarty.php.net) -> php, lgpl, verbreitet
    phpCMS (phpcms.de) -> php,glp,cms-ähnlich
    Cheetah (cheetahtemplate.org) -> python, MIT-lizens
    template toolkit (template-toolkit.org) -> perl, GPL
    mason (masonhq.com) -> machtiges template-system für perl,gpl

    mhmm wenn du mehr davon willst kann ich es dir auch scannen

    aber das sollte glaubich reichen
     
  16. 19. Mai 2007
    AW: Template Engine!?

    Was fuer Tabellen duerfen es denn sein? Auch in Smarty gibt es ein foreach!
     
  17. 19. Mai 2007
    AW: Template Engine!?

    @DrLabbe, thx für die links...mir gehts aber eher darum, dass ich diese systeme nicht verwenden!!
    Wenn man sich das hier anguckt http://php-coding-standard.de/php_template_engine.php und dann versucht das mit smarty zu lösen wird man draufkommen, dass das smarty nur unnötig verkompliziert!! Hoffe jetzt versteht ihr was ich meine !

    //edit: @tHe dUdE, genau darauf will ich auch hinaus...guck dir mal den link ein paar zeilen oberhalb an !

    mfg
     
  18. 20. Mai 2007
    AW: Template Engine!?

    np wegen den links, dachte du suchst alternativen....

    und zu dem link: selbstverständlich verkompliziert sich der code bei einer seite die eh nichts kann außer existieren... aber stell dir mal nen lange quellcode vor, da is das definitiv von vorteil das zu splitten. ich hab mal meine start.php/ start.tpl gescreenshottet -> http://svbaum.sv.funpic.de/raidrush/smarty.JPG
    da sieht man meiner meinung sehr schön die trenneng. im oberen php bereich ist keinerlei ausgabe, dh solltest du das design mal verändern wollen etc kannst du sie einfach stehen lassen. die tpl hingegen hat garkein php. sondern nur html und css. leider kann ich dir kein beispiel geben wies aussieht wann man es nicht trennt, aber es wird komplizierter meiner meinung nach
     
  19. 20. Mai 2007
    AW: Template Engine!?

    ...ich glaube ihr versteht ned ganz was ich mein, guck dir mal dein template an...hast ja auch ne if und ne foreach drinne!! Warum ne eigenen syntax verwenden wenn man das mit php auch kann?? Guck dir doch ma den link oben an, dort wir im design auch nichts anderes verwendet als ne foreach und ne if mehr php elemente braucht man in der .tpl datei auch nicht und man verwendet php syntax und nicht die syntax von smarty!! Ich trenne ja auch code und design!!

    hoffe das war jetzt verständlich genug xD!

    mfg
     
  20. 20. Mai 2007
    AW: Template Engine!?

    muss opio recht geben, hatte mich auch mal mit smarty beschäftigt, bin aber dann zum schluss gekommen das man sich das smarty zeug sparren kann, weil man genauso php sachen mit im html stehen hat.

    ob das jetzt ein <?= $hallowelt; ?> ist oder ein { $hallowelt; } is dann wirklich nebensächlich.
     
  21. 20. Mai 2007
    AW: Template Engine!?

    Stimmt schon, jedoch muss man beim zweiten weniger schreiben (coder sind faul).
     
  22. 20. Mai 2007
    AW: Template Engine!?

    @Fabjuone, meinst du das ernst?? *gg*

    naja, danke schon mal für eure hilfe, habt alle ne bw !!
     
  23. 20. Mai 2007
    AW: Template Engine!?

    Natürlich mein ich das ernst, lieber lern ich wie ne template engine funktioniert, als paar Zeichen mehr zu tippen und die dann jedes mal mehr zu tipppen. In PHP gibts doch so viele verkürzungen, Programmierer sind nunmal faul.
     
  24. 20. Mai 2007
    AW: Template Engine!?

    Ich selber hab mir auch mal son kleines Template System zusammengebaut..... ganz simpel aber erfüllt sein sinn und zweck

    PHP:
    ob_start ();
    include(
    'module/news.php' );
    $content  ob_get_clean ();

    $template  "templates/test/index.tpl" ;
    $str  file_get_contents ( $template );
    $str  str_replace ( '{content}' " $content " $str );
    echo 
    $str ;
    include('module/news.php');
    Hier einfach die Datei eingeben die dann durch "{content} ersetzt wird

    $str = str_replace('{content}', "$content", $str);
    Hier wird ganz einfach nur {content} durch $content ersetzt..... und $content ist halt einfach das includen der Newsseite

    Natürlich kann man noch weitere Platzhalter in das Script einbauen....
    Ist halt sehr simpel gehalten...



    gruß
     
  25. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.