[PHP] Template Engine!?

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

Schlagworte:
  1. 20. Mai 2007
    AW: Template Engine!?

    hehe, jaha... naja aber irwi bleib ich bei der überzeugung -> großes projekt, use smarty
     
  2. 20. Mai 2007
    AW: Template Engine!?


    nö nicht ganz... auf meinem server würde das <?=blablabla?> nicht laufen... es wird auf jeden fall nicht auf ALLEN servern laufen...

    in diesem sinne: mach du wie du es denkst und ärgere dich später, wenn dein skript nicht überall lauffähig ist! viel spaß beim ändern!
     
  3. 20. Mai 2007
    AW: Template Engine!?

    Ich persönlich benutze auch kein Smarty o.ä. Template Engines... brauch die einfach nicht.. meine Codes sind meiner Meinung nach übersichtlich genug - zumindest die, wo man als Inhaber / Designer was ändern muss..
    Und naja, zu euerm "{ $Blub }" ist kürzer als "<?php echo $Blub; ?>" ... wenn man Smarty nimmt muss man dafür ein großes Script-Paket Dings noch mitladen.. Hier hat doch mal wer geschriebn das sind ca 15k Zeilen, und so 'n großes Script mitladen nur damit der Coder n bisschen weniger arbeit hat - is das so produktiv?
     
  4. 20. Mai 2007
    AW: Template Engine!?

    Auf keinem Fall! Wenn man weiß was man will und was es bringen soll! dann codet man es sich einfach selbst!
    Es muss ja nicht unbedingt so umfangreich sein
     
  5. 20. Mai 2007
    AW: Template Engine!?

    aber wie auch schon gesagt wurde bringt smarty noch weitere vorteile, wie caching o.ä.
     
  6. 20. Mai 2007
    AW: Template Engine!?

    Man nützt TemplateEngines wenn man Gestaltung strikt vom Code trennen will. Das ist effektiv der Hauptgrund....Wenn man natürlich nur Variablen in HTML ausgeben will muss man nicht zu Smarty oder einer anderen umfangreichen Engine greifen und kann sich selbst was kleines schreiben. Wenn man aber z.B. das 3 Schichten Modell vorzieht, TemplateEngine Helper nutzen will uvm. und auch gerne Caching etc. nützt , brauch man schon was ordentliches. Und bevor ich sowas wie smarty selber schreibe, benutze ich lieber sowas wie smarty o.Ä., ein weiterer Vorteil von Template Engines betrifft auch die Teamarbeit. Ich denke ein Webdesigner/HTML Coder der nichts, aber auch wirklich nichts mit programmieren am hut hat, wird lieber smarty tags schreiben, als php code!
     
  7. 20. Mai 2007
    AW: Template Engine!?

    ...naja, ich werde auf jedenfall http://php-coding-standard.de/php_template_engine.php verwenden, code und design werden getrennt, ich brauch keine neue template syntax lernen und das argument mehr schreib arbeit ist auch ned wiklich ein argument. Ob ich jetzt die geschwungenen klammern verwenden oder n echo is auch schon wayne, dass mit dem caching wird bei dem obigen link auch ned gebraucht, da alles sowieso über php läuft!!

    Faszit: Warum Smarty oder ähnliches verwenden, wenns einfacher auch geht?

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

    wie schon gesagt, ob <?php ... ?> oder { ... } is doch egal.

    HTML:
    <?php 
    $arr = array("Hallo", "wie", "geht", "es", "dir", "?");
    
    foreach($arr AS $num => $val) { ?>
    
    Array Nummer "<?php echo $num; ?>", Hat folgenden Inhalt: "<?php echo $val; ?>"<br/> 
    
    <?php } ?>
    
    <br/>
    <div style="border: 1px solid black">
    <?php if(is_array($arr)) { ?>$arr ist ein Array!<?php }else{ ?>$arr ist kein Array...<?php } ?>
    </div>
    <br/>
    
    <?php
    $spalten = 2;
    ?>
    
    <table cellpadding="4" cellspacing="1" width="600" align="center" border="1">
     <tr>
     <td>Spalte 1</td><?php if($spalten == 2) { ?><td>Spalte 2</td><?php } ?>
     </tr>
    </table>
    und von wegen script von html trennen, was ist bitte schön getrennt wenn ich einen haufen smarty-syntax mit im template stehen hab? leichter zu lernen ist das auch nicht.
     
  9. 20. Mai 2007
    AW: Template Engine!?

    @murdoc, seh ich genauso...wobei schon ne trennung da ist, wird einfach übersichtlicher wenn du ne eigene datei hast wo maximal ne if und ne foreach vorkommt!

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

    so wie oben code ich selber auch nicht, aber das verdeutlicht mal das angebliche php von html trennen wenn man die smarty sachen in php ausdrückt.
     
  11. 20. Mai 2007
    AW: Template Engine!?

    ...find den obigen code eigentlich ganz gut was die übersichtlichkeit angeht, denke ich werde in zukunft nur mehr mit dieser art und weise proggn!! Wie codest du dann?? Trennst du html und php auch??

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

    Murdoc, das meine ich doch gar nicht, sollte dir auch klar sein ... ich meinte .... Das HTML Code nicht einfach mit z.B. PHP - Logik vermischt in PHP Dateien versteckt liegt, sondern die Gestaltung von der Programmierung getrennt ist. Ähnlich wie die Trennung von HTML / CSS ... da wurd jetzt n bißchen aneinander vorbei geredet.
    Es gibt auch genügend engines wie ihr hier beschreibt die php tags benutzen ... ich wollte nur darauf hinaus dass man so das html abseits von php datei entwicklen kann und sie nicht miteinander vermischt, mehr nicht .... ob jetzt smarty tags, php tags oder irgendwas anders ist doch jetzt nur ein detail von der umsetzung ....
     
  13. 20. Mai 2007
    AW: Template Engine!?

    also ich trenne mit meinem template system den php-code strikt von html.. hab kein einzigen phpcodeschnipsel oder sonst irgendwelche schleifen etc in meinen templates.. das jetzt zu vertiefen is mir gerade zu kompliziert, und ich bin eh müde
     
  14. 21. Mai 2007
    AW: Template Engine!?

    @MakenX, hast schon recht, das sind details und geschmacksache was man da verwendet, unumstritten ist aber, dass bei beiden methoden desing und code zu gut wies geht getrennt werden, dass ne 100% trennung nicht möglich ist, is auch klar!

    @stinkZwiebel, wos spannend wird hörst du auf!! Schilder uns doch deine variante, würd mich intressieren wie du z.b. das füllen von tabellen mit daten realisiert hast, ohne irgendwelcher schleifen-syntax im template?

    mfg
     
  15. 21. Mai 2007
    AW: Template Engine!?

    Ich brauch auch keine Template Engines. Wenn man dern Code immer "sauber hält" sollte es eigt. kein Problem sein, den Überblick über sein "Chaos" zu behalten. ^^ So eine Template Engine ist, denke ich mal, erst wirklich nötig, wenn mehrere Leute an einem Projekt arbeiten und man die Trennung von Design und Code dadurch auch wirklich braucht.

    mfg
    Hägar
     
  16. 21. Mai 2007
    AW: Template Engine!?

    Du hast genau das gesagt, was ich gestern abend nicht im Stande war zu sagen, merci! Falls ich noch was hinzufügen kann, ich benutze bei meinen PHP - Codes einen Adapater für die TemplateEngine. Heißt, dass ich für mich universale Funktionen/Adaptermethoden benutze die immer gleich sein und diese auf die Engine "mounte", heißt also ist mir smarty als Beispiel zu langsam, zu blöd wie auch immer kann ich die ohne probleme ersetzen und muss meine ganzen quellcodes nicht verändern.

    @Häägar, ähm nope. Ist eigentlich ein Unding HTML Code mit seiner PHP Logik direkt zu verarbeiten. Ist ähnlich wie die Sache mit Der Gestaltung einer Internetseite und deren HTML Code. Natürlich kann man beides zusammen direkt "dirty" in eine HTML - Datei schreiben, und falsch muss es nicht sein, aber es ist nicht die feine art.
     
  17. 21. Mai 2007
    AW: Template Engine!?

    Mich würde das auch sehr interessieren, wie z.b. variable daten einfügst? kanst du uns einen quellcode von dir liefern?
     
  18. 21. Mai 2007
    AW: Template Engine!?

    ich lese mein template ein, und ersetze den platzhalter mit dem inhalt der variable. das tolle is, ich brauch dazu auch kein eval oder sonstigen müll
     
  19. 21. Mai 2007
    AW: Template Engine!?

    ...der text in rot würde mich intressieren!!

    mfg

    PS: MakenX, kannst du bitte hier im thread so ne Funktionen/Adaptermethoden posten, damit wir sehen können wie du das genau machst?? (oder halt per pn?( )
     
  20. 21. Mai 2007
    AW: Template Engine!?

    tabellen füllen:

    template table_a:
    HTML:
    <table><tr>
    template table_b:
    HTML:
    </tr></table>
    template table_c:
    HTML:
    <td>{platzhalter}</td>
    script:
    PHP:
    $ausgabe  $tpl -> get ( "table_a" );
    $platzhalter  = array( "hallo" "wie" "geht" "es" "dir" );
    foreach(
    $platzhalter  AS  $la  =>  $le ) {
    $ausgabe  .=  $tpl -> get ( "table_c" );
    $ausgabe  str_replace ( "{platzhalter}" $le $ausgabe );
    }
    echo 
    $ausgabe  .=  $tpl -> get ( "table_b" );
    sehr stumpf ausgedrückt, aber so erledige ich das.

    ps: wenn makenx sein script posten sollte, dann denk ich wird es ein hartes sein sich als anfänger dort rein zu lesen^^
     
  21. 21. Mai 2007
    AW: Template Engine!?

    ...würd mich ja auch ned als anfänger bezeichnen , so wie du das eben beschrieben hast, hab ich das im prinzip auch gelöst, nur find ich es da besser wenn man ne foreach dirket in der *.tpl datei verwendet!(is meiner meinung nach übersichtlicher)

    mfg
     
  22. 21. Mai 2007
    AW: Template Engine!?

    Hö ich versteh euer Problem grad nicht .... Einfach eine Klasse erstellen die die Methoden von z.B. Smarty aufruft.

    Ich mache mal ein Beispiel:
    Ihr habt bisher eine selbst geschriebene Engine die die Funktionen assign, template_parse und template_print bereitstellt. Ihr ruft eure Engine wie bisher wie ein normales objekt auf. Nun wollt ihr aber eure Engine wechseln, ohne jeden Quellcode zu ändern. Ihr ersetzt also eure momentane Engine mit solch einem Adapterobjekt welches die gleichen funktionen wie bisher bereitstellt.

    Nun schnappt ihr euch zum Beispiel Smarty und analysiert die Methoden die ihr braucht. Und die Methoden die ihr bisher direkt bei eurer Engine aufgerufen habt, ruft ihr beim Adapater auf. Dieser Adapter delegiert dann diesen assign aufruf für die smarty::assign weiter. Euer template_parse wird zu smarty::fetch .... etc ....

    Weitere Punkte zum Adapter :
    Entwurfsmuster - &Uuml;bersicht
    phppatterns.com

    Ihr stellt euch das glaube ich jetzt besonders kompliziert vor, ist bei ner TemplateEngine aber noch halb so wild, schlimmer wird das bei Datenbanksystem etc....
     
  23. 21. Mai 2007
    AW: Template Engine!?

    ...aha, ok also wenn ich das richtig verstanden habe dann kombinierst du dein eigenes template system mit dem von z.b. smarty, damit du dann auf z.b. die smarty foreach syntax im template zurückgreifen kannst...kann man das so sagen??

    mfg
     
  24. 21. Mai 2007
    AW: Template Engine!?

    Jo könnte man das sagen japp .... und noch was als ergänzung. Smarty hat nicht im Ansatz 15K Zeilen.
     
  25. 21. Mai 2007
    AW: Template Engine!?

    mhh... aber "fast"...

    um genau zu sein: 71 dateien, 9508 zeilen, 236.645 zeichen, 308 kommentare, 31 mal das wort "class"

    welche version das ist, weiß ich net mehr. es sei dazugesagt: zeilenangaben MIT leerzeilen (ohne ca. 9000 zeilen)


    JEDOCH
    oop hat ja was schönes an sich... einfach die module entfernen, die nicht gebraucht werden und smarty wird schlanker

    sooo,... ob template-engine benutzen, oder nicht, das muss jeder für sich entscheiden. jedoch sollte derjenige, der sich gegen eine te entscheided bewusst sein, dass schreibweisen wie "<?= ... ?>" nicht auf jedem server laufen! glaubt mir: über das thema haben sich schon mehr leute den kopf zerbrochen... und nach wie vor gibt es 2 seiten...
     
  26. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.